Пытаясь нарисовать эту картину с помощью черепахи, просто застрял на последнем куске рисования квадрата в круг. квадраты, чтобы сделать круг до сих пор, я пробовал просто вычерчивать точки каждой отдельной линии, но укладывается в путь с некоторыми несоответствиями. То, что я до сих пор
def square(side_length):
for i in range(4):
turtle.fd(side_length)
turtle.lt(90)
square (150)
turtle.penup()
####New Square###
turtle.left(90)
turtle.forward(75)
turtle.left(90)
turtle.forward(30)
turtle.right(180)
turtle.right(45)
turtle.pendown()
def square(side_length):
for i in range(4):
turtle.fd(side_length)
turtle.lt(90)
square (150)
Это рисует два квадрата. Теперь мне просто нужно выяснить способ поворота двух квадратов, скажем, на 30 градусов по часовой стрелке 4 раза. Есть ли функция, которую я могу использовать для этого, или мне просто нужно сделать много математики и вычислить, чтобы рисовать каждую отдельную строку?
Несмотря на свое название, turtle.circle
можно использовать для рисования других правильных многоугольников. Его также можно использовать для рисования только части многоугольника. В сочетании с выбором пера вверх и вниз вы можете легко нарисовать серию вращающихся фигур, разделяющих один и тот же центр.
Например,
for i in range(19):
turtle.circle(100, 360, 4) # draw a square
turtle.penup()
# "draw" 10 degrees of the same circle, with the pen up, just to move the pen
turtle.circle(100, 10, 4)
turtle.pendown()
(Круг - это просто многоугольник с достаточным количеством сторон для приближения круга. Если вы не укажете третий аргумент явно, turtle
выбирает достаточно большое значение, основанное на радиусе.)
Это комбинация двух. Вам нужно сделать небольшую математику, чтобы найти начальную точку для каждого квадрата. Однако, как только вы переместите черепаху в эту точку и переверните ее на правильный заголовок, ваш блок выражений для рисования четырех сторон будет работать нормально.
После того, как вы нарисуете последнюю сторону квадрата, черепаха сидит на внешнем круге, обращаясь к 45 градусам от радиуса к этой точке.
Повторите эти шаги для каждого добавленного квадрата.