python, черепаха. Как нарисовать окружность с заданным радиусом без метода circle?
Попробовал вот такой код, окружность таки рисуется, только черепаха по непонятной мне причине выполняет цикл гораздо большее количество раз, чем я рассчитывал. Я ожидал, что если изменять угол на один градус и перемещать черепаху в цикле 360 раз, высчитывая координаты по формуле, то окружность нарисуется один раз, а не как в моем случае непонятное множество. Подскажите пожалуйста, в чем проблема и как можно решить, не прибегая к методу circle
import math
import turtle
turtle.shape("turtle")
r = 10
f = 0
turtle.penup()
turtle.forward(r)
turtle.pendown()
for i in range (360):
x = r * math.cos(f)
y = r * math.sin(f)
turtle.goto(x, y)
f = f + 1
Ответы (1 шт):
Автор решения: Stanislav Volodarskiy
→ Ссылка
Проще всего ваш код поправить, переведя градусы в радианы. math.sin
и math.cos
принимают углы в радианах, а вы их считаете в градусах.
import math
import turtle
turtle.shape("turtle")
r = 100
f = 0
turtle.penup()
turtle.forward(r)
turtle.pendown()
for i in range (360):
x = r * math.cos(math.radians(f))
y = r * math.sin(math.radians(f))
turtle.goto(x, y)
f = f + 1
Но так черепахи не ходят, они ходят головой вперёд:
import math
import turtle
turtle.shape("turtle")
r = 100
step = r * 2 * math.pi / 360
turtle.penup()
turtle.forward(r)
turtle.left(90)
turtle.forward(-step / 2)
turtle.pendown()
for _ in range (360):
turtle.forward(step)
turtle.left(1)