python中turtle画树_python中turtle可以画树吗?怎么画?
這幾天給大家介紹的畫圖形的方法很多,小編就想著有沒有難一點(diǎn)的可以挑戰(zhàn)一下。經(jīng)過一番搜集資料,還真的被小編找到了。當(dāng)然代碼會(huì)比較長,小伙伴們學(xué)習(xí)的時(shí)候要有耐心,不要出現(xiàn)手滑的現(xiàn)象,不然對著代碼一點(diǎn)點(diǎn)找失誤真的是太痛苦啦。接下來就進(jìn)行我們今天的畫圖吧。
代碼: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?#?右分支偏轉(zhuǎn)角度
c?=?random()?*?15?+?10?#?左分支偏轉(zhuǎn)角度
d?=?l?*?(random()?*?0.25?+?0.7)?#?下一個(gè)分支的長度
#?右轉(zhuǎn)一定角度,畫右分支
right(b)
tree(n?-?1,?d)
#?左轉(zhuǎn)一定角度,畫左分支
left(b?+?c)
tree(n?-?1,?d)
#?轉(zhuǎn)回來
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漸進(jìn),0最快
tracer(0,?0)
pu()?#?抬筆
backward(100)
left(90)?#?左轉(zhuǎn)90度
pu()?#?抬筆
backward(300)?#?后退300
tree(12,?100)?#?遞歸7層
done()
成果:
畫好的小伙伴是不是發(fā)現(xiàn)這個(gè)樹非常漂亮?當(dāng)然了,之前的代碼非常長,寫起來也是需要時(shí)間的。所以寫代碼的時(shí)候一定要小心,如果其中出了一點(diǎn)錯(cuò)誤會(huì)非常難以找到。以后有好看的圖片小編還會(huì)繼續(xù)分享給大家~
總結(jié)
以上是生活随笔為你收集整理的python中turtle画树_python中turtle可以画树吗?怎么画?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么在小程序中实现保存图片组件功能
- 下一篇: pythonsklearn多元回归回归_