Некоторое время назад я сделал эту программу, чтобы нарисовать флаг, и я попытался запустить его недавно, и он почему-то не работал, хотя это было, когда я изначально его закодировал. Полоски рисуют хорошо, но когда дело доходит до синего квадрата и звезд, указатель черепахи никуда не движется. Я использую python 2.7.11, но это было написано год назад. Думаю, это может быть причиной того, что он не работает? Я не помню, какую версию python я использовал.Python Turtle Not Drawing Correctly
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)
... или, еще лучше, просто добавьте 'из __future__ import division' в верхнюю часть файла – Gerrat
@Gerrat: Это работает, но я бы этого не сделал, если бы не была какая-то причина, работающая в Python2. – Functino
Я бы не установил совершенно новую версию Python, чтобы не добавлять одну строку в программу. Он упомянул, что использовал Python2.7. – Gerrat