最初,我需要使用具有随机数量分支的星星来绘制花朵。所以,我写了这个函数:
def star(nb_branches:int , size:int) :
for i in range(int(nb_branches / 2)) :
forward(size * 3)
left(180 - (360 / nb_branches))
(这个函数的参数是随机的,并且是在另一个函数中创建的,但这不是问题)
然而,我意识到,当分支数量为奇数时,星星就不是完美的星星。我认为循环和/或角度是这个问题的根源。此后,我尝试了不同的角度和可能性,但我还没有得到答案。
预先感谢您的回复。
这是我从这个带有奇数的函数中得到的示例
在我看来,运行你的星星就像一颗未完成的星星。因此我将循环更改为
def star(nb_branches:int , size:int) :
for i in range(int(nb_branches *2)) :
forward(size * 3)
left(180 - (360 / nb_branches))
由于我将
nb_branches
理解为星形尖端的数量,因此这会导致星形的尖端数量是所需尖端的两倍。
因此我建议使用以下功能
from turtle import *
def star(nb_branches:int , size:int) :
for i in range(int(nb_branches)) :
forward(size * 3)
left(180 - (180 / (nb_branches)))
# testcase
star(11, 50)
然而,这甚至不适用于
nb_branches
。原因是,在绘制边缘一半之后,形状就已经闭合了。为了绘制偶数的星星,需要在一半的交互后重新定位乌龟,然后绘制第二个形状。