Python Turtle画分形树理解递归

本文通过Python的turtle模块,以分形树为例,深入浅出地解释了递归的概念。递归是一种将复杂问题分解为相似小问题的思维方式,当达到特定条件时返回结果。利用这种思想,我们可以创建出具有相同结构的分形树分支。文章展示了使用turtle画分形树的过程,并提到递归在二叉树遍历中的应用。同时,还提供了调整turtle速度和改变树枝颜色的示例。
摘要由CSDN通过智能技术生成

递归思想

递归可以把一个复杂问题转化为一个与原问题相似的规模较小的问题,通过自己调用自己,找到最终解决这个问题的条件,达到判断条件时返回。

通过分形树理解递归

Python中的 turtle画图很方便,画分形树的思想也可以用到二叉树的遍历中,我们先来看这样一颗分形树

我们可以发现树的分支都是一样的,具有相同的结构

先考虑简单的最底层的两个分支,我们可以让turtle一开始向上走一段初始距离

def draw_tree(size):
    if size > SIZE_TREE:  # 如果size在范围内,那么可以画树
        # 右边

        turtle.forward(size)     # 先向前走size
        turtle.right(20)         # 右转20°
        draw_tree(size / 1.5)    # 再继续右转 长度减半 走不动时往左边转40°
        # 左边
        turtle.left(40)         # 左转40°
        draw_tree(size / 1.5)   # 画左边的树 长度减半 走不动时 右转20回到原来角度

        # 回到
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值