所以,我正在尝试创建一个函数来在 turtle 中制作螺旋。它似乎工作得很好,除了当我希望它在下降到一个像素时停止绘制时,该函数会继续绘制和绘制。任何帮助将不胜感激!
def spiral( initialLength, angle, multiplier ):
"""uses the csturtle drawing functions to return a spiral that has its first segment of length initialLength and subsequent segments form angles of angle degrees. The multiplier indicate how each segment changes in size from the previous one.
input: two integers, initialLength and angle, and a float, multiplier
"""
newLength = initialLength * multiplier
if initialLength == 1 or newLength ==1:
up()
else:
forward(initialLength)
right(angle)
newLength = initialLength * multiplier
if newLength == 0:
up()
return spiral(newLength,angle, multiplier)
根据 initialLength
和 multiplier
的值,您的函数很可能永远不会恰好为 1。您检查一下就在这里:
if initialLength == 1 or newLength ==1:
up()
如果它永远不会恰好达到 1, turtle 将永远不会停止绘画。
尝试将其更改为:
if initialLength <= 1 or newLength <=1:
up()
老实说,你可以这样做:
if initialLength <= 1:
up()
由于 initialLength
和 newLength
本质上是相同的变量,因此它们仅相差一个 multiplier
因子(一个递归深度)。
我是一名优秀的程序员,十分优秀!