我不明白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