Я полагаю, что ваша черепаха движется не в том направлении и недостаточно далеко, потому что ваша математика неверна.Вы смешиваете градусы (по умолчанию для черепахи) с радианами (ожидание math.cos ()):
angle = (n-2)*180/n
insideangle=angle/2
centrelength = length/2/math.cos(insideangle)
Ваш cos()
вызов возвращает отрицательное значение - forward()
с отрицательным значением backward()
и наоборот.Давайте переделаем математику, а также переключим черепаху в радианы (не обязательно, но код соответствует):
from math import pi, sin as sine
from turtle import Screen, Turtle
def triangular_polygon(turtle, length, n):
inside_angle = (n - 2) * pi / n / 2
rotating_angle = pi - inside_angle
radius = length / (2 * sine(pi / n))
turtle.penup()
turtle.forward(radius)
turtle.left(rotating_angle)
turtle.pendown()
for _ in range(n):
turtle.forward(length)
turtle.left(rotating_angle)
turtle.forward(radius)
turtle.backward(radius)
turtle.right(inside_angle)
screen = Screen()
bob = Turtle()
bob.radians() # switch turtle to radians to match math functions
bob.speed('slowest')
bob.dot() # mark the center of our screen for reference
triangular_polygon(bob, 100, 6)
bob.hideturtle()
screen.exitonclick()
