Сейчас я работаю над лабораторной задачей, которая просит меня нарисовать звездный многоугольник с n точками, используя и итерацию, и рекурсию.
Когда вызывается функция star_iter(size,n), она должна нарисовать ОДНУ звезду с n точками и "размер" длинных сторон.
Я поискал в Интернете звездчатые многоугольники
(), и для звездообразного многоугольника написано: n/плотность не может быть уменьшена дальше.
"n" означает количество точек, равномерно распределенных по кругу. (см. рисунок)
Звездный многоугольник n
«Плотность» мне трудно объяснить, поэтому вот пример: Звездный многоугольник с плотностью 2 говорит вам соединить каждую вторую точку вместе. Плотность звездного многоугольника
Примеры рабочих звездных многоугольников:
Те, у которых рядом с ним стоит x, не считаются звездными многоугольниками
Формула, которую я использовал для вычисления внутреннего угла звездных многоугольников: Сумма углов в звездном многоугольнике= 180 * (n - 2*плотность)
Поэтому я написал этот код, чтобы убедиться, что он меняет плотность, если НОД n и плотности не равен 1.
Код: Выделить всё
#Star iteration
def gcd(a,b): #find the greatest common divisor of 2 numbers
while b != 0:
a,b = b, a % b
return a
def star_iter(size,n):
#size stands for the length of the sides
#n stands for number of points in the star.
density = 2 #set default density to 2
turtle.pendown()
if n
Подробнее здесь: [url]https://stackoverflow.com/questions/72943585/how-to-draw-star-polygons-using-turtle-graphs-in-python[/url]
Мобильная версия