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层,每一层 枝干数为

math?formula=2%5E%EF%BC%88n-1%EF%BC%89%20%E4%B8%AA%E6%9E%9D%E5%B9%B2%EF%BC%8C最后一层才是樱花花瓣

done()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我来为您展示如何使用Python中的turtle模块樱花树。 首先,我们需要导入turtle模块: ```python import turtle ``` 然后,我们需要设置一些布的基本参数,例如布大小、笔颜色等: ```python # 设置布大小 turtle.setup(width=800, height=600) # 设置笔颜色 turtle.pencolor("pink") ``` 接下来,我们需要定义一个函数来树干。树干可以看作是一条直线,可以使用turtle模块中的forward()函数来实现: ```python def tree(branchLen, t): if branchLen > 5: # 树干 t.forward(branchLen) # 右侧树枝递归 t.right(20) tree(branchLen - 15, t) # 左侧树枝递归 t.left(40) tree(branchLen - 15, t) # 返回树干原始位置 t.right(20) t.backward(branchLen) ``` 这个函数接收两个参数:树枝的长度和turtle对象。在函数中,我们首先判断树枝长度是否大于5,如果是,就用forward()函数出树干,然后递归地调用tree()函数出右侧和左侧的树枝。最后,我们需要将turtle对象返回到树干原始位置。 接下来,我们需要定义一个函数来花朵。我们可以使用turtle模块中的dot()函数来实现: ```python def flower(t): # 花 t.pencolor("red") t.fillcolor("pink") t.begin_fill() t.circle(10, 180) t.circle(25, 110) t.left(50) t.circle(40, 140) t.left(60) t.circle(30, 150) t.right(40) t.forward(30) t.end_fill() ``` 这个函数接收一个turtle对象,用于在布上出花朵。在函数中,我们首先设置笔和填充颜色,然后使用circle()函数出花瓣的弧线。最后,我们需要填充花朵的颜色。 最后,我们需要在主程序中调用上述两个函数,来出整个樱花树: ```python if __name__ == '__main__': # 设置笔速度 turtle.speed(0) # 树干 turtle.left(90) turtle.penup() turtle.backward(200) turtle.pendown() turtle.pensize(8) tree(100, turtle) # 花朵 turtle.penup() turtle.setpos(0, 0) turtle.pendown() turtle.pensize(2) for i in range(8): turtle.left(45 * i) flower(turtle) # 隐藏turtle对象 turtle.hideturtle() # 关闭turtle.done() ``` 在这个程序中,我们设置了笔的速度、笔粗细等参数。然后,我们使用penup()函数将turtle对象移动到树干的起始位置,然后使用pendown()函数开始树。最后,我们用for循环出8朵花,然后隐藏turtle对象并关闭布。 以上就是使用turtle模块樱花树的全部代码,您可以复制到Python IDE中执行,看到效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值