python绘图案例——递归绘制分形树

python绘图案例——递归绘制分形树_第1张图片

运行效果图

案例分析:

1、树干初始值为50

2、每次绘制完树枝后,画笔右转20度

3、绘制下一段树枝时,长度减少15,。重复2——3操作直到终止

4、终止条件:树干长度小于5,此时为顶端树枝

5、达到终止条件后,画笔左转40度,以当前长度减少15,绘制树枝

6、右转20度,回到原方向,退回上一个节点,直到操作完

示例代码

## 绘制分型树,末梢的树枝的颜色不同

import turtle

def draw_brach(brach_length):

if brach_length > 5:

if brach_length < 40:

turtle.color('green')

else:

turtle.color('red')

# 绘制右侧的树枝

turtle.forward(brach_length)

print('向前',brach_length)

turtle.right(25)

print('右转20')

draw_brach(brach_length-15)

# 绘制左侧的树枝

turtle.left(50)

print('左转40')

draw_brach(brach_length-15)

if brach_length < 40:

turtle.color('green')

else:

turtle.color('red')

# 返回之前的树枝上

turtle.right(25)

print('右转20')

turtle.backward(brach_length)

print('返回',brach_length)

def main():

turtle.left(90)

turtle.penup()

turtle.backward(150)

turtle.pendown()

turtle.color('red')

draw_brach(100)

turtle.exitonclick()

if __name__ == '__main__':

main()

运行过程:

python绘图案例——递归绘制分形树_第2张图片

你可能感兴趣的:(python绘图案例——递归绘制分形树)