生活随笔
收集整理的這篇文章主要介紹了
Python 画樱花(动态画+飘落效果+暗色效)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
link
# coding=utf-8
# 畫一棵櫻花import turtle
import random
from turtle import
*
from time import 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) #
6t
.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.25pencolor(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.5pencolor(n
,n
*0.8,n
*0.8)circle(3)left(90)#添加
0.3倍的飄落葉子
if(random()>0.7):pu()#飄落t
= heading()an
= -40 +random()*40setheading(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.5pencolor(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
*
from random import
*
from math import
*def
tree(n
, l
):pd()t
= cos(radians(heading() + 45)) / 8 + 0.25pencolor(t
, t
, t
)pensize(n
/ 4)forward(l
)if n
> 0:b
= random() * 15 + 10c
= random() * 15 + 10d
= l
* (random() * 0.35 + 0.6)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.5pencolor(n
, n
, n
)circle(2)left(90)pu()backward(l
)bgcolor(0.5, 0.5, 0.5)
ht()
speed(0)
tracer(0, 0)
left(90)
pu()
backward(300)
tree(13, 100)
done()
總結
以上是生活随笔為你收集整理的Python 画樱花(动态画+飘落效果+暗色效)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。