我不明白Koch曲线是如何使用这个函数的。ThinkPython练习5.4 Koch曲线
def koch(t, n):
"""Draws a koch curve with length n."""
if n<3:
fd(t, n)
return
m = n/3.0
koch(t, m)
lt(t, 60)
koch(t, m)
rt(t, 120)
koch(t, m)
lt(t, 60)
koch(t, m)
fd(t,n)命令表示对象't'将向前移动量'n'。rt(t,120)和lt(t,60)命令意味着对象't'将以给定角度向右或向左转。
所以我推测,笔者使用递归的功能,但我不明白它是如何与自身重申了很多次,因为我是一个初学者,并有非常有限的逻辑能力。
作为一个例子说我称为科赫(吨,100)if子句是通过如N> 3导致的下一行代码是米/ 3.0因此100/3.0 33.3通过。这导致koch(t,33.3),并且当n> 3仍然认为它重新产生koch(t,11.1)等等,直到我们重申它直到我们来到koch(t,1.23)。
现在作为n = 1.23,并且if子句尽快激活,我们可以运行if条件代码块,用fd(t,1.23)代替所有koch(t,m)语句。我看到它FD(),LT(),FD(),室温(),FD,LT(),FD()应尽快活化仅一次正< 3为n = 1.23或它再次重申与1.23/3.0和代码再次运行与科赫(吨,0.41)?也许是因为else子句不存在可以取消该功能,但是该功能确实结束了,如果我为n选择了更高的值,那么koch曲线也会更大,这使我更加困惑,因为在那里我可以看到没有行代码告诉我重复这个函数n次。
我对于缺乏透明度的道歉,因为我不知道如何解释清楚。
在“龟图”,这是我想象在这里使用,当“海龟”(毫无疑问't'这里)向前移动,它吸引在它的移动在画布上(如果它的拿着笔的“尾巴”倒下了,这里毫无疑问被认为是这种情况)。你是否完全理解“龟图形”,例如“fd(t,10); lt(t,90)”四次重复会画出一个正方形? –
对不起,我编辑了评论,希望它更清楚。我真的不知道该函数的重复部分是如何工作的 – firebird92