1. 程式人生 > >python遞迴繪製簡單分形樹

python遞迴繪製簡單分形樹

對於樹形結構,首先要明白繪製的過程:

1 繪製右數

2 返回節點

3 繪製左樹

4 返回節點

程式碼:

"""
作者:sust_ly
功能:繪製分形樹
版本:2.0
日期:2018/3/2
"""
import turtle


def draw_shu(length):
    if length >= 5:
        turtle.forward(length)
        turtle.right(20)
        draw_shu(length - 10)
        turtle.left(40)
        draw_shu(length - 10)
        turtle.right(20)
        turtle.backward(length)


def main():
    turtle.left(90)
    turtle.penup()
    turtle.backward(150)
    turtle.pendown()
    draw_shu(80)
    turtle.done()


if __name__ == "__main__":
    main()
    turtle.forward(length)
        turtle.right(20)
        draw_shu(length - 10)

當遞迴執行到上述程式碼時,將最右側樹型勾勒出來,條件不成立,不執行draw_shuh函式if內容。

    turtle.left(40)
        draw_shu(length - 10)

執行到這一句時,同樣因條件不成立不會執行這函式裡的if條件,直接退出

    turtle.right(20)
        turtle.backward(length)

執行這一句,退回到最後一個節點,這時最後一個節點的右邊線完成開始執行畫右側最後一個節點的左側樹枝,同上。

當整個遞迴完成,則: