Python繪圖之桃花盛開
今天請(qǐng)各位讀者朋友欣賞用 Python 實(shí)現(xiàn)的鮮花盛宴,你準(zhǔn)備好了嗎?90 行代碼即可實(shí)現(xiàn)一棵美麗的鮮花盛開樹。小編也是鮮花愛護(hù)協(xié)會(huì)者之一,但是想要看到美麗的花朵,得歷經(jīng)很多;對(duì)于知識(shí)的運(yùn)用也是如此,需要不斷吸收新知識(shí),學(xué)習(xí)新技能,才能盛開出美麗的花朵。接下來就看看一棵迷人的花樹是怎么實(shí)現(xiàn)的吧!
夏天的花
實(shí)現(xiàn)思路
實(shí)現(xiàn)思路主要是利用之前學(xué)過的 Python 繪圖模塊 Turtle,Turtle 詳細(xì)學(xué)習(xí)課程請(qǐng)參考趣玩 Python 之繪制基本圖形 再結(jié)合隨機(jī)函數(shù)生成任意的一棵樹,櫻花樹主要組成部分有樹干和花瓣以及飄落的花瓣構(gòu)成。
亭亭玉立的樹干
繪畫的樹干使用了 Python 中的隨機(jī)函數(shù),這樣每次生成的樹干都是隨機(jī)的,樹干的選擇也是隨機(jī)設(shè)置參數(shù)進(jìn)行調(diào)整。
示例圖:
代碼如下所示:
def cherryTree(branch, t): if branch > 4: # 枝干數(shù) if 7 <= branch <= 13: # 隨機(jī)數(shù)生成 if random.randint(0, 3) == 0: t.color('snow') # 花瓣心的顏色 else: t.color('pink') #花瓣顏色 # 填充的花瓣大小 t.pensize( branch / 6) elif branch < 8: if random.randint(0, 2) == 0: t.color('snow') else: # 設(shè)置樹葉顏色 t.color('green') t.pensize(branch / 5) else: t.color('Peru') # 樹干顏色 t.pensize(branch / 11) #調(diào)整樹干的粗細(xì) t.forward(branch) a = 1 * random.random() t.right(20 * a) b = 1 * random.random() cherryTree(branch - 10 * b, t) t.left(60 * a) cherryTree(branch - 10 * b, t) t.right(40 * a) t.up() t.backward(branch) t.down()
以上代碼實(shí)現(xiàn)的是隨機(jī)樹干以及花瓣顏色、樹葉的顏色填充,同時(shí)還調(diào)整了花瓣大小和樹干粗細(xì)。使整個(gè)樹干看起來更協(xié)調(diào)。
花瓣隨風(fēng)飄
賞花最美不過是花瓣隨風(fēng)飄落的場(chǎng)景,示例圖:
代碼實(shí)現(xiàn):
def petal(m, t): for i in range(m): a = 200 - 400 * random.random() b = 10 - 20 * random.random() t.up() t.forward(b) # 向左移動(dòng) t.left(75) # 向前移動(dòng) t.forward(a) # 放下畫筆 t.down() # 設(shè)置花瓣顏色 t.color('pink') # 粉紅色 # 畫個(gè)小圓當(dāng)作花瓣 t.circle(1) # 提起畫筆 t.up() # 畫筆向后退 t.backward(a) # 畫筆向前行 t.right(70) t.backward(b)
鮮花配文字
一棵盛開的鮮花樹怎么能少得了合適的文案呢?這里我們?cè)倮眯『}斃L圖將文字配上
代碼如下:
def des_word(): t.color('LightCoral') # 字體顏色設(shè)置 t.hideturtle() # t.goto(-50, -130) t.goto(-60,-170) t.pu() t.write('姹紫嫣紅桃花箋,',move=False, align='center', font=('Arial', 20, 'normal')) t.pd() t.pu() # t.goto(90, 130) t.goto(150,-170) t.write('繁花似錦為君妍', move=False, align='center', font=('Arial', 20, 'normal')) t.pd()
畫筆樣式調(diào)整
t = turtle.Turtle() # 畫布大小 獲取到屏幕 w = turtle.Screen() t.hideturtle() # 隱藏畫筆 t.getscreen().tracer(8, 0) # 獲取屏幕大小 w.screensize(bg='LightCyan') # 設(shè)置屏幕背景顏色 t.left(80) t.up() t.backward(140) t.down() t.color('sienna') cherryTree(50, t) petal(300, t)
最終結(jié)果
至此,清風(fēng)徐來,繁花已開!
到此這篇關(guān)于Python繪圖之桃花盛開的文章就介紹到這了,更多相關(guān)python桃花樹內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)定時(shí)器的5種方法
本文主要介紹了python實(shí)現(xiàn)定時(shí)器的5種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03在vscode中啟動(dòng)conda虛擬環(huán)境的思路詳解
這篇文章主要介紹了在vscode中啟動(dòng)conda虛擬環(huán)境的思路詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12一文詳解Python如何優(yōu)雅地對(duì)數(shù)據(jù)進(jìn)行分組
這篇文章主要和大家詳細(xì)介紹一下Python是如何優(yōu)雅地對(duì)數(shù)據(jù)進(jìn)行分組的,文中通過示例進(jìn)行了詳細(xì)的講解,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-07-07利用Python裁切tiff圖像且讀取tiff,shp文件的實(shí)例
這篇文章主要介紹了利用Python裁切tiff圖像且讀取tiff,shp文件的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03python實(shí)現(xiàn)將讀入的多維list轉(zhuǎn)為一維list的方法
今天小編就為大家分享一篇python實(shí)現(xiàn)將讀入的多維list轉(zhuǎn)為一維list的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06