資源簡介
:利用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()
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????817??2020-10-29?23:35??樹木繪制33.py
?????文件????????1434??2020-10-29?23:51??樹木繪制55-11.py
?????文件????????3147??2020-10-29?23:53??樹木繪制55.py
?????文件????????1461??2020-10-29?23:58??樹木繪制66.py
?????文件????????1837??2020-10-29?23:32??樹木繪制22.py
- 上一篇:python 批量修改文件后綴
- 下一篇:kmeans聚類算法的python實現程序
評論
共有 條評論