您好,登錄后才能下訂單哦!
小編給大家分享一下怎么用Python Turtle畫棵櫻花樹送給自己,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
可以參考之前的博客:
Python爬蟲實現抓取電影網站信息并入庫
之前沒怎么用過 Python,就對別人的代碼進行分析和效果優化好啦,順便學習一下。
這個是原來的效果圖,有點灰蒙蒙的,微微改動,讓它明媚一點。
修改之后的代碼:
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 ran=random() #這里相比于原來隨機添加了填充的圓圈,讓櫻花葉子看起來更多一點 if(ran>0.7): begin_fill() circle(3) fillcolor('pink') #把原來隨機生成的葉子換成了統一的粉色 pencolor("pink") circle(3) if(ran>0.7): end_fill() 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.956,0.9255,0.9882)#設置背景色(把灰色換成淡紫色) ht()#隱藏turtle speed(0)#速度 1-10漸進,0 最快 tracer(0,0) pu()#抬筆 backward(50) left(90)#左轉90度 pu()#抬筆 backward(300)#后退300 tree(12,100)#遞歸7層 done()
之后的效果溫暖一點,喜歡這種更有溫度的色調:
櫻花樹的繪制效果是通過 Python 中的 turtle 來實現的,Python 的強大之處在于有許多很強大的庫,turtle就是其中之一,是 Python 自帶的一個庫。
turtle庫繪制原理:有一只海龜在窗體正中心,在畫布上游走,走過的軌跡形成了繪制的圖形,海龜由程序控制,可以自由改變顏色、方向寬度等。
(1) . turtle 繪圖窗體
setup用來設置窗體大小,后兩個參數為非必選參數;
turtle.setup(width,height,startx,starty)
(2) . turtle 的坐標體系
畫布上,默認有一個坐標原點為畫布中心的坐標軸,坐標原點上有一只面朝x軸正方向的小烏龜。
這里我們描述小烏龜時使用了兩個詞語:坐標原點(位置),面朝x軸正方向(方向), turtle 繪圖中,就是使用位置方向描述小烏龜(畫筆)的狀態的。
(3) . turtle 畫筆屬性
(4) . turtle 繪圖命令
運動命令
控制命令
全局控制命令
以上是“怎么用Python Turtle畫棵櫻花樹送給自己”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。