python绘图案例——递归绘制分形树
运行效果图
案例分析:
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()