Vor einer Weile machte ich dieses Programm, um eine Flagge zu zeichnen, und ich habe versucht, es vor kurzem auszuführen, und es funktionierte nicht aus irgendeinem Grund, obwohl es war, als ich es ursprünglich codiert. Die Streifen ziehen gut, aber wenn es um das blaue Quadrat und die Sterne geht, bewegt sich der Schildkrötenzeiger nicht. Ich benutze Python 2.7.11, aber das wurde vor einem Jahr geschrieben, denke ich, könnte das der Grund sein, warum es nicht funktioniert? Ich erinnere mich nicht, welche Version von Python ich benutzte.Python Turtle nicht korrekt zeichnen
import turtle
def draw_stripes(length, height, color):
turtle.speed('fast')
turtle.color(color)
turtle.begin_fill()
turtle.pendown()
turtle.forward(length)
turtle.left(90)
turtle.forward(height)
turtle.left(90)
turtle.forward(length)
turtle.left(90)
turtle.forward(height)
for i in range(0,6):
turtle.penup()
turtle.left(180)
turtle.forward(height*2)
turtle.pendown()
turtle.right(90)
turtle.forward(length)
turtle.left(90)
turtle.forward(height)
turtle.left(90)
turtle.forward(length)
turtle.left(90)
turtle.forward(height)
turtle.end_fill()
def draw_canton(length, height, color):
turtle.speed('fast')
turtle.left(180)
turtle.forward(height/13)
turtle.color(color)
turtle.begin_fill()
turtle.right(90)
turtle.pendown()
turtle.forward(length*(2/5))
turtle.right(90)
turtle.forward(height*(7/13))
turtle.right(90)
turtle.forward(length*(2/5))
turtle.right(90)
turtle.forward(height*(7/13))
turtle.end_fill()
def draw_star_row_six(length, height, size):
turtle.speed('fast')
turtle.right(90)
turtle.forward(length)
turtle.right(90)
turtle.forward(length)
turtle.right(180)
turtle.forward(size)
turtle.right(163)
for i in range (6):
draw_star(size, 'white')
turtle.left(73)
turtle.forward(length*2)
turtle.right(73)
turtle.left(253)
turtle.forward((length*2)*6)
turtle.left(90)
turtle.forward(height*2)
turtle.right(180)
turtle.right(163)
for i in range (6):
draw_star(size, 'white')
turtle.left(73)
turtle.forward(length*2)
turtle.right(73)
turtle.left(253)
turtle.forward((length*2)*6)
turtle.left(90)
turtle.forward(height*2)
turtle.right(180)
turtle.right(163)
for i in range (6):
draw_star(size, 'white')
turtle.left(73)
turtle.forward(length*2)
turtle.right(73)
turtle.left(253)
turtle.forward((length*2)*6)
turtle.left(90)
turtle.forward(height*2)
turtle.right(180)
turtle.right(163)
for i in range (6):
draw_star(size, 'white')
turtle.left(73)
turtle.forward(length*2)
turtle.right(73)
turtle.left(253)
turtle.forward((length*2)*6)
turtle.left(90)
turtle.forward(height*2)
turtle.right(180)
turtle.right(163)
for i in range (6):
draw_star(size, 'white')
turtle.left(73)
turtle.forward(length*2)
turtle.right(73)
turtle.left(253)
turtle.forward((length * 2)*6)
turtle.right(90)
turtle.forward(height*7)
def draw_star_row_five(length, height, size):
turtle.right(90)
turtle.forward(length)
turtle.right(73)
for i in range (5):
draw_star(size, 'white')
turtle.left(73)
turtle.forward(length*2)
turtle.right(73)
turtle.left(253)
turtle.forward((length*2)*5)
turtle.left(90)
turtle.forward(height*2)
turtle.right(180)
turtle.right(163)
for i in range (5):
draw_star(size, 'white')
turtle.left(73)
turtle.forward(length*2)
turtle.right(73)
turtle.left(253)
turtle.forward((length*2)*5)
turtle.left(90)
turtle.forward(height*2)
turtle.right(180)
turtle.right(163)
for i in range (5):
draw_star(size, 'white')
turtle.left(73)
turtle.forward(length*2)
turtle.right(73)
turtle.left(253)
turtle.forward((length*2)*5)
turtle.left(90)
turtle.forward(height*2)
turtle.right(180)
turtle.right(163)
for i in range (5):
draw_star(size, 'white')
turtle.left(73)
turtle.forward(length*2)
turtle.right(73)
turtle.home()
def draw_star(size, color):
turtle.color(color)
turtle.begin_fill()
turtle.pendown()
for i in range(5):
turtle.forward(size)
turtle.right(144)
turtle.end_fill()
turtle.penup()
def get_color():
return r,g,b
def draw_flag(height):
turtle.speed('fast')
turtle.setx(-150)
turtle.color('black')
turtle.pendown()
turtle.forward(height*1.9)
turtle.left(90)
turtle.forward(height)
turtle.left(90)
turtle.forward(height*1.9)
turtle.left(90)
turtle.forward(height)
turtle.penup()
turtle.left(90)
draw_stripes((height*1.9), height/13, 'red')
draw_canton((height*1.9), height, 'blue')
draw_star_row_six(((height*1.9)*(2/5))/12,(height*(7/13))/10, ((height/13)*(4/5))/2)
draw_star_row_five(((height*1.9)*(2/5))/12,(height*(7/13))/10, ((height/13)*(4/5))/2)
height = float(input('Enter The Height of Your Flag: '))
draw_flag(height)
... oder, noch besser, fügen Sie einfach 'from __future__ import division' an den Anfang der Datei – Gerrat
@Gerrat: Das funktioniert, aber ich würde es nicht tun, es sei denn, es gab einen Grund in Python2 zu laufen war wünschenswert. – Functino
Ich würde nicht eine ganz neue Python-Version installieren, nur um keine Zeile zu einem Programm hinzuzufügen. Er erwähnte, dass er Python2.7 verwendete. – Gerrat