绘制分形树

"""
利用递归函数绘制分形树
"""

import turtle

"""
假设在length是25时的循环里,绘制右边函数那一块的draw_branch先向右绘制了长度尾10的右叉
但跳过了这次嵌套里的右叉、左叉(因为都是-5),只转了弯,于是返回到原来树枝。
这一步结束之后,再进入length=25时候的绘制左侧树枝,即左转40度画10厘米。
在左侧这一块的draw_branch里,绘制完10厘米,也只是转了几个弯,无法画图(-5),
贡献了回来(这块函数运行完表现为画了10厘米,回来10厘米)。
这个循环里length还是25,于是转20度退回25回到了第一个叉口,length=40时的绘制右边树枝结束了。
再运行length=40时,绘制左边函数,同上。
"""
def draw_branch(branch_length):
if branch_length > 5:
# 绘制右边树枝
turtle.forward(branch_length)
turtle.right(20)
draw_branch(branch_length - 15)
#length=25时,上面这个函数表现向右画了10又回来10

    # 绘制左侧树枝
    turtle.left(40)
    draw_branch(branch_length - 15)
    #这个函数运行完表现为画了10,回来10厘米

    #返回之前的树枝
    turtle.right(20)
    turtle.backward(branch_length)
    #转了20度,回来25,相当于回到第一个叉口

def main():
turtle.left(90)
draw_branch(40)
turtle.exitonclick()

if name == 'main':
main()

再画大一点只用把40改成100

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容