1. 程式人生 > >用迭代函式繪製分形樹

用迭代函式繪製分形樹

"""
    作者:範文武
    功能:利用遞迴函式繪製分形樹
    版本:1.0
    日期:11/08/2018
"""

# 引入圖形繪製庫
import turtle

# 函式呼叫
def draw_fractal_tree(branch_length):
    """
        繪製分形樹
    """
    if branch_length >5 :
        # 繪製右側樹
        turtle.forward(branch_length)
        print('向前',branch_length)
        turtle.right(20)
        print('右轉20°')
        draw_fractal_tree(branch_length-15)

        # 繪製左側樹
        turtle.left(40)
        print('左轉40°')
        draw_fractal_tree(branch_length-15)

        # 返回
        turtle.right(20)
        print('右轉20°')
        turtle.backward(branch_length)
        print('倒退',branch_length)

def main():
    """
        主函式
    """
    turtle.color('brown')
    turtle.penup()
    turtle.backward(150)
    turtle.pendown()
    turtle.left(90)             # 樹根向上
    print('出發')

    # 呼叫迭代函式繪製第一顆分形樹
    draw_fractal_tree(100)

    # 呼叫迭代函式繪製第二顆分形樹
    turtle.penup()
    turtle.right(90)
    turtle.forward(200)
    turtle.pendown()            # 樹根向上
    turtle.left(90)
    draw_fractal_tree(80)

    turtle.exitonclick()

if __name__ == '__main__':
    main()