美文网首页
turtle模块-知乎画樱花树

turtle模块-知乎画樱花树

作者: sumu90 | 来源:发表于2019-05-23 11:12 被阅读0次

    画过笑脸之后觉得很有趣,搜索过程中看到知乎上的问题,真的是非常漂亮。于是抄写并尝试读懂运行之。

    大家用Python-turtle库作图画出过哪些漂亮的树哇 ? - 知乎

    #知乎 画树

    from turtle import *

    from random import *

    from math import *

    def tree(n,l):

        t=cos(radians(heading()+45))/8+0.25

        # radians() 将角度转化为弧度  heading()返回目前朝向度数

        pencolor(t,t,t)

        pensize(n/ 3)

        pd()

        forward(l)

        if n >0:

            b = random() *15 +10  #右分支偏转角度  random() 返回随机生成的在[0,1)范围内的一个实数。

            c = random() *15 +10  #左分支偏转角度

            d= l * (random()*0.25+0.7) #下一个分支的长度

            #右转一定角度,画右分支

            right( b )

            tree(n-1,d)

            #左转一定角度,画左分支

            left(b+c)

            tree(n-1,d)

            #转回来

            right(c)

        else:

            #画叶子

            right(90)

            n=cos (radians(heading()-45))/4+0.5      #n的范围在0.25~0.75

            pencolor(n,n*0.8, n*0.8)

            circle(3)

            left(90)

        pu()

        backward(l)

    bgcolor(0.5,0.5,0.5)    #背景色

    hideturtle()  #隐藏箭头

    tracer(0,0)  #??没有动画,立即形成图画

    speed('fastest')

    pu()

    backward(100)

    left(90)

    pu()

    backward(300)

    tree(8,100)  #递归8层。其实是有9层,每一层 枝干数为2^(n-1) 个枝干,最后一层才是樱花花瓣

    done()

    相关文章

      网友评论

          本文标题:turtle模块-知乎画樱花树

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