Попробуйте
import turtle
import math
theta = 18 * math.pi/180 # convert degrees to radians
Length = eval(input("enter the length you want for your star: "))
x = math.sin(theta) * Length
y = math.cos(theta)* Length/2
turtle.penup()
turtle.goto(0,200)
turtle.pendown()
turtle.goto(0,-200)
turtle.penup()
turtle.goto(200,0)
turtle.pendown()
turtle.goto(-200,0)
turtle.penup()
#turtle.goto(0,0)
turtle.goto(x,-y)
turtle.showturtle
turtle.pendown()
turtle.left(36*4)
turtle.forward(Length)
turtle.right(36*4)
turtle.forward(Length)
turtle.right(36*4)
turtle.forward(Length)
turtle.right(36*4)
turtle.forward(Length)
turtle.right(36*4)
turtle.forward(Length)
turtle.hideturtle()
input("Press Enter to exit")
Это просто вопрос выяснить координаты центра звезды вы рисунок, а затем переводил начальную позицию по этому вектору , чтобы переместить центр в начало координат.
EDIT:
Если вернуться к исходному рисунку, слева от оси у, ваши см двух отрезков, в перевернутой V-образной формы. Если мы присоединимся к двум пересечениям этих сегментов с осью х друг к другу, мы имеем равнобедренный треугольник, центром которого является центр звезды. Это то, что нам нужно найти. Теперь каждый угол звезды составляет 36 градусов, а половина - 18. Вот откуда 18. Чтобы на самом деле найти центр, нам нужно использовать некоторую тригонометрию, которую, как я понимаю, вы еще не изучили. Функции sin и cos - синусоидальные и косинусные функции от тригонометрии. Аргументы этих функций обычно даются не в градусах, а в другой системе, называемой радианами. Бывает, что 1800 градусов - это то же самое, что и pi radians, поэтому theta - это всего лишь 18-градусный угол, измеренный в радианах.
«Почему 18 градусов», я слышал, вы спрашиваете? Помните, что мы пытаемся найти центр этого равнобедренного треугольника с двумя сторонами, равными длине, и гипотенузой длины. Итак, я бросаю перпендикуляр к основанию, мы разрезаем его на два прямоугольных треугольника с одним острым углом 18 градусов (а остальные 72 градуса). И вот сюда входят синус и косинус. В правом треугольнике с гипотенуза Длина, сторона напротив острого угла тета имеет длину sin(theta)*Length
, а сторона, прилегающая к углу тета, имеет длину cos(theta)*Length
.
Это длинное объяснение, но я не знаю, как сделать его короче в этом формате. Вы можете найти объяснение с фотографиями here
Хорошо. так в чем проблема? О чем вы просите о помощи? –
как поставить центр звезды на 0,0 независимо от размера звезды. Просто возиться, пытаясь учиться. =) –