一.满树樱花
# coding=utf-8 # 画一棵樱花 import turtle import random from turtle import * from
timeimport sleep # 画樱花的躯干(60,t) def tree(branchLen,t): sleep(0.0005) if
branchLen>3: if 8<= branchLen <=12: if random.randint(0,2) == 0: t.color('snow')
# 白 else: t.color('lightcoral') # 淡珊瑚色 t.pensize(branchLen / 3) elif branchLen <
8: if random.randint(0,1) == 0: t.color('snow') else: t.color('lightcoral') #
淡珊瑚色 t.pensize(branchLen / 2) else: t.color('sienna') # 赭(zhě)色 t.pensize(
branchLen/ 10) # 6 t.forward(branchLen) a = 1.5 * random.random() t.right(20*a)
b= 1.5 * random.random() tree(branchLen-10*b, t) t.left(40*a) tree(branchLen-10*
b, t) t.right(20*a) t.up() t.backward(branchLen) t.down() # 掉落的花瓣 def petal(m, t
): for i in range(m): a = 200 - 400 * random.random() b = 10 - 20 * random.
random() t.up() t.forward(b) t.left(90) t.forward(a) t.down() t.color(
'lightcoral') # 淡珊瑚色 t.circle(1) t.up() t.backward(a) t.right(90) t.backward(b)
def main(): # 绘图区域 t = turtle.Turtle() # 画布大小 w = turtle.Screen() t.hideturtle()
# 隐藏画笔 getscreen().tracer(5,0) w.screensize(bg='wheat') # wheat小麦 t.left(90) t.
up() t.backward(150) t.down() t.color('sienna') # 画樱花的躯干 tree(60,t) # 掉落的花瓣
petal(200, t) w.exitonclick() main()
效果图

二、樱花
from turtle import * from random import * from math import * def tree(n,l): pd(
)#下笔 #阴影效果 t = cos(radians(heading()+45))/8+0.25 pencolor(t,t,t) pensize(n/3)
forward(l)#画树枝 if n>0: b = random()*15+10 #右分支偏转角度 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 pencolor(n,n*0.8,n*0.8) circle(3) left(90) #添加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) circle(2) left(90) pu() #返回 t=heading() setheading(an) backward
(dis) setheading(t) pu() backward(l)#退回 bgcolor(0.5,0.5,0.5)#背景色 ht()#隐藏turtle
speed(0)#速度 1-10渐进,0 最快 tracer(0,0) pu()#抬笔 backward(100) left(90)#左转90度 pu()#抬笔
backward(300)#后退300 tree(12,100)#递归7层 done()
效果图

三、落花
from turtle import * import random def drawTree(length): if length>1: if length
<30 and length>14:#缩小一下树干 pensize(4) elif length<15 and length>5:#长度这个范围内那么就是绿叶
color('#04B486')# pensize(3) elif length<5 and length>1:#红花 color('#FE2E9A')
pensize(2) else: color('#5E5E5E')#其他范围就是正常的树干 pensize(5) #随机角度与长度 randangle=2*
random.random() randlen=2*random.random() #每次使用函数先绘制线段,再调整角度,这里是向右的角度转动 fd(
length) right(20*randangle) drawTree(length - 10*randlen) #这里是向左的角度转动 left(40 *
randangle) drawTree(length - 10*randlen)
#为什么需要再向右转20度?那是因为我一共向左转了40度,使用backward后退,必须是相同的角度,不然退回去角度就不同了位置就不会对 right(20 *
randangle) up() backward(length) down() def fallingFlowers(m): x,y=-1000,-750
for i in range(30): up() goto(x,y) x+=100 down() yval=50 for i in range(m): a =
100*random.random() b = 2*random.random() print(a) if a>59: color('#FE2E9A')
else: color('#04B486') circle(5) up() goto(x,y+(yval*b)) fd(a) yval+=50 down()
setworldcoordinates(-1000,-750,1000,750) tracer(False) fallingFlowers(10)#绘制落叶
bgcolor("#F5F6CE") color('#5E5E5E') pensize(5) up() goto(0,-700)#跳到绘制起始点 down()
left(80) fd(140) drawTree(120) input()
如过有闪退,一般都是版本问题:
解决办法:
python2.*后面加上:raw_input() python3.*后面加上:input()

技术
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:766591547
关注微信