python中turtle画树_python中turtle可以画树吗?怎么画?
這幾天給大家介紹的畫圖形的方法很多,小編就想著有沒有難一點的可以挑戰一下。經過一番搜集資料,還真的被小編找到了。當然代碼會比較長,小伙伴們學習的時候要有耐心,不要出現手滑的現象,不然對著代碼一點點找失誤真的是太痛苦啦。接下來就進行我們今天的畫圖吧。
代碼: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()
成果:
畫好的小伙伴是不是發現這個樹非常漂亮?當然了,之前的代碼非常長,寫起來也是需要時間的。所以寫代碼的時候一定要小心,如果其中出了一點錯誤會非常難以找到。以后有好看的圖片小編還會繼續分享給大家~
總結
以上是生活随笔為你收集整理的python中turtle画树_python中turtle可以画树吗?怎么画?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么在小程序中实现保存图片组件功能
- 下一篇: 如何安装python中的whl文件