樱花飘落python_樱花之吻(python.turtle)

大框架

类下的函数

初始化函数

from turtle import *

from random import *

from math import *

class Tree:

def __init__(self):

setup(1000, 500)

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

ht() # 隐藏turtle

speed(10) # 速度 1-10渐进,0 最快

tracer(0,0) # 设置绘图屏幕刷新频率,参数1设置在正常刷新频次的第参数1次刷新,参数2设置每次刷新的时延

pu() # 抬笔

backward(100)

# 保证笔触箭头方向始终不向下,此处使其左转90度,而不是右转

left(90) # 左转90度

backward(300) # 后退300

def tree(self, n, l):

pd() # 下笔

# 阴影效果

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

pencolor(t, t, t)

pensize(n / 1.2)

forward(l) # 画树枝

if n > 0:

b = random() * 15 + 10 # 右分支偏转角度

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

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

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

right(b)

self.tree(n - 1, d)

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

left(b + c)

self.tree(n - 1, d)

# 转回来

right(c)

else:

# 画叶子

right(90)

n = cos(radians(heading() - 45)) / 4 + 0.5

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

fillcolor(n, n * 0.8, n * 0.8)

begin_fill()

circle(3)

left(90)

end_fill()

# 添加0.3倍的飘落叶子

if random() > 0.7:

pu()

# 飘落

t = heading()

an = -40 + random() * 40

setheading(an)

dis = int(800 * random() * 0.5 + 400 * random() * 0.3 + 200 * random() * 0.2)

forward(dis)

setheading(t)

# 画叶子

pd()

right(90)

n = cos(radians(heading() - 45)) / 4 + 0.5

pencolor(n * 0.5 + 0.5, 0.4 + n * 0.4, 0.4 + n * 0.4)

fillcolor(n, n * 0.8, n * 0.8)

begin_fill()

circle(2)

left(90)

end_fill()

pu()

# 返回

t = heading()

setheading(an)

backward(dis)

setheading(t)

# pass

pu()

backward(l) # 退回

def main():

tree = Tree()

tree.tree(12, 100) # 递归7层

done()

if __name__ == __main__:

main()

樱花之吻

大框架 类下的函数 初始化函数 from turtle import * from random import * from math import * class Tree: def __init__(self): setup(1000, 500) bgcolor(1, 1, 1) # 背景色 ht() # 隐藏turtle speed(10) # 速度 1-10渐进,0 最快 tracer(0,0) # 设置绘图屏幕刷新频率,参数1设置在正常刷新频次的第参数1次刷新,参数2设置每次刷新的时延 pu() # 抬笔 backward(100) # 保证笔触箭头方向始终不向下,此处使其左转90度,而不是右转 left(90) # 左转90度 backward(300) # 后退300 def tree(self, n, l): pd() # 下笔 # 阴影效果 t = cos(radians(heading() + 45)) / 8 + 0.25 pencolor(t, t, t) pensize(n / 1.2) forward(l) # 画树枝 if n > 0: b = random() * 15 + 10 # 右分支偏转角度 c = random() * 15 + 10 # 左分支偏转角度 d = l * (random() * 0.25 + 0.7) # 下一个分支的长度 # 右转一定角度,画右分支 right(b) self.tree(n - 1, d) # 左转一定角度,画左分支 left(b + c) self.tree(n - 1, d) # 转回来 right(c) else: # 画叶子 right(90) n = cos(radians(heading() - 45)) / 4 + 0.5 pencolor(n, n * 0.8, n * 0.8) fillcolor(n, n * 0.8, n * 0.8) begin_fill() circle(3) left(90) end_fill() # 添加0.3倍的飘落叶子 if random() > 0.7: pu() # 飘落 t = heading() an = -40 + random() * 40 setheading(an) dis = int(800 * random() * 0.5 + 400 * random() * 0.3 + 200 * random() * 0.2) forward(dis) setheading(t) # 画叶子 pd() right(90) n = cos(radians(heading() - 45)) / 4 + 0.5 pencolor(n * 0.5 + 0.5, 0.4 + n * 0.4, 0.4 + n * 0.4) fillcolor(n, n * 0.8, n * 0.8) begin_fill() circle(2) left(90) end_fill() pu() # 返回 t = heading() setheading(an) backward(dis) setheading(t) # pass pu() backward(l) # 退回 def main(): tree = Tree() tree.tree(12, 100) # 递归7层 done() if __name__ == __main__: main() 樱花之吻
经验分享 程序员 微信小程序 职场和发展