天天看点

python小象学院: 分形树绘制------递归

递归函数绘制分形树

分形几何学的基本思想:客观事物具有自相似的层次结构,局部与整体存在形态\功能\信息\时间\空间方面具有统计意义上的相似性,成为自相似性.自相似性是指局部是整体成比例缩小的性质.

算法思路:

  1. 可以迭代的操作:
  2. 终止条件:树枝长度初始30,小于5(某长度)停止
  3. 确定了长度,角度
python小象学院: 分形树绘制------递归
python小象学院: 分形树绘制------递归
python小象学院: 分形树绘制------递归
"""
Draw a fractal tree using recursion.
"""

import turtle

def draw_branch(branch_length,):
    if branch_length > 5:
        #draw right branch
        turtle.forward(branch_length)
        turtle.right(20)
        draw_branch(branch_length - 15)

        #draw left branch
        turtle.left(40)
        draw_branch(branch_length - 15)

        #Return to the previous branch
        turtle.right(20)
        turtle.backward(branch_length)


def main():


    turtle.left(90)
    turtle.penup()
    turtle.backward(150)
    turtle.pendown()
    turtle.color('green')
    turtle.forward(40)
    draw_branch(100)

if __name__== '__main__':
    main()