Python使用Turtle庫繪制一棵西蘭花
Turtle庫是Python中一個強大的繪制圖像的函數(shù)庫,靈活使用Turtle庫可以繪制各種好看的圖像。
下面介紹使用Turtle庫繪制一棵西蘭花。
繪制一棵西蘭花,從主干出發(fā)以一定的角度向左向右生成對稱的枝干,再從每個枝干出發(fā)向左向右生成對稱的枝干,循環(huán)此動作,并最終繪制出一棵漂亮的西蘭花。
首先導(dǎo)入Turtle庫,并設(shè)置畫筆大小、畫筆速度及顏色,并隱藏畫筆
from turtle import Turtle p=Turtle() p.pensize(5) p.color(clr) p.hideturtle() p.getscreen().tracer(30,0)
設(shè)置起始方向以及位置(屏幕中心為坐標(biāo)原點)
p.left(90) p.penup() p.goto(x,y) p.pendown()
設(shè)置畫筆完成之后,開始繪制西蘭花,首先繪制從開始畫位置向著預(yù)定的方向前進一段距離,并向左向右分成兩個對稱的分支
p.forward(l) q=p.clone() p.left(a) q.right(a)
每完成一次分支后就將兩個分支對象添加到list中,并通過遍歷list完成整個圖像的繪制
def tree(plist,l,a,f): if l>5: lst=[] for p in plist: p.forward(l) q=p.clone() p.left(a) q.right(a) lst.append(p) lst.append(q) tree(lst,l*f,a,f)
在程序中通過遞歸調(diào)用完成了一棵西蘭花的繪制。
程序剩余代碼如下:
def maketree(x,y,clr): p=Turtle() p.pensize(5) p.color(clr) p.hideturtle() p.getscreen().tracer(30,0) #p.speed(10) p.left(90) p.penup() p.goto(x,y) p.pendown() t=tree([p],200,20,0.6375) #print(len(p.getscreen().turtles())) def main(): maketree(0,-300,"green") main()
以上這篇Python使用Turtle庫繪制一棵西蘭花就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳細(xì)介紹pandas的DataFrame的append方法使用
這篇文章主要介紹了詳細(xì)介紹pandas的DataFrame的append方法使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07分析python并發(fā)網(wǎng)絡(luò)通信模型
隨著互聯(lián)網(wǎng)和物聯(lián)網(wǎng)的高速發(fā)展,使用網(wǎng)絡(luò)的人數(shù)和電子設(shè)備的數(shù)量急劇增長,其也對互聯(lián)網(wǎng)后臺服務(wù)程序提出了更高的性能和并發(fā)要求。本文主要分析比較了一些模型的優(yōu)缺點,并且用python來實現(xiàn)2021-06-06Tornado Web Server框架編寫簡易Python服務(wù)器
這篇文章主要為大家詳細(xì)介紹了Tornado Web Server框架編寫簡易Python服務(wù)器,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-07-07Python實現(xiàn)獲取前100組勾股數(shù)的方法示例
這篇文章主要介紹了Python實現(xiàn)獲取前100組勾股數(shù)的方法,涉及Python數(shù)值計算與判斷相關(guān)操作技巧,需要的朋友可以參考下2018-05-05Python學(xué)習(xí)筆記之列表推導(dǎo)式實例分析
這篇文章主要介紹了Python學(xué)習(xí)筆記之列表推導(dǎo)式,結(jié)合實例形式分析Python列表推導(dǎo)式的原理、寫法與相關(guān)使用技巧,需要的朋友可以參考下2019-08-08