1. 程式人生 > >turtle庫繪製科赫雪花曲線

turtle庫繪製科赫雪花曲線

from turtle import *
# 最重要的便是遞迴函式:要理解科赫曲線的原理:取一段直線的1/3長度,
# 以該長度的4條小直線拼成,其中中間兩條小直線凸起(60度)
# 以此類推,每條小直線再接著細分
def koch(size,n):
    if n==0:
        fd(size)
    else:
        for angel in [0,60,-120,60]:
            left(angel)
            koch(size/3,n-1)
# 上面函式:在最外層的迴圈執行轉角度後再呼叫下一階及相應的直線長度(0、60、-120、60)
# 這些角度都是並列關係,每一層又包含著呼叫遞迴也是這四個角度
# 其實最裡面的遞迴呼叫效果就是把每個小直線分成四段,中間突起
# 下面函式後面的程式碼是形成一個大三角,把每個邊繪製成科赫曲線,三角形三個邊通過角度進行轉換連線
def main():
    setup(600,600)
    penup()
    goto(-200,100)
    pendown()
    pensize(2)
    level=3
    koch(400,level)
    right(120)
    koch(400,level)
    right(120)
    koch(400,level)
    hideturtle()