美文网首页
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