美文网首页
绘制分形树

绘制分形树

作者: 浮出海面_d825 | 来源:发表于2022-04-17 15:11 被阅读0次

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

    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

    相关文章

      网友评论

          本文标题:绘制分形树

          本文链接:https://www.haomeiwen.com/subject/alqzdrtx.html