Python利用Turtle庫(kù)繪制一顆櫻花樹
后唐李煜曾說道,櫻花落盡春將困,秋千架下歸時(shí)。漏暗斜月遲遲,花在枝。櫻花落盡的時(shí)候春天也將過去了,秋千架下歸去時(shí)。天上的斜月姍姍來遲,花還在枝頭。

關(guān)于python畫圖相關(guān)的,我們一直使用的是turtle來畫,用專業(yè)的非標(biāo)準(zhǔn)庫(kù)來做專業(yè)的事兒。將需要使用到的內(nèi)置庫(kù)或者非標(biāo)準(zhǔn)庫(kù)全部都導(dǎo)入到當(dāng)前的代碼塊中。
from time import sleep # 用于控制程序運(yùn)行時(shí)的阻塞停頓 from turtle import * # 繪圖相關(guān)接口 import random # 生成隨機(jī)數(shù)
設(shè)置全局需要初始化的對(duì)象,以及相關(guān)的全局參數(shù)設(shè)置,這樣就不用在后面每畫一筆進(jìn)行設(shè)置了。
但是畫布上面有一個(gè)箭頭一直無法消除,有知道的大佬煩請(qǐng)留言說一下解決辦法,感激不盡!
tle = Turtle() # 初始化小烏龜畫筆對(duì)象 tle.hideturtle() # 全局隱藏畫筆 tle.clear() # 清除屏幕 tle.speed(0) # 設(shè)置畫筆速度為0,也就是最快的畫筆速度 scr = Screen() # 初始化屏幕對(duì)象 getscreen().tracer(30, 0) # 返回一個(gè)TurtleScreen類的繪圖對(duì)象,并開啟繪畫,加速繪畫過程 scr.screensize(bg='white') # 設(shè)置背景顏色
開始繪制,設(shè)置開始時(shí)的畫筆相關(guān)的屬性或參數(shù)。
tle.left(90)
tle.up()
tle.backward(150)
tle.down()
tle.color('sienna')
接下來是編寫兩個(gè)函數(shù),一個(gè)是用于生成樹枝/樹干并在對(duì)應(yīng)的樹枝旁邊畫上櫻花。另一個(gè)則是在櫻花樹的地上鋪滿掉落的櫻花,這樣的思路來源于CSDN博客平臺(tái),向大佬遞茶!
編寫畫櫻花樹的樹枝/樹干部分/樹枝櫻花的函數(shù)draw_branch_flower。
def draw_branch_flower(len):
'''
繪制樹枝/花函數(shù)
:param len: 樹枝長(zhǎng)度
:return:
'''
sleep(0.0005)
if len > 3:
if 8 <= len <= 12:
if random.randint(0, 2) == 0:
tle.color('snow')
else:
tle.color('lightcoral')
tle.pensize(len / 3)
elif len < 8:
if random.randint(0, 1) == 0:
tle.color('snow')
else:
tle.color('lightcoral')
tle.pensize(len / 2)
else:
tle.color('sienna')
tle.pensize(len / 10)
tle.forward(len)
a = 1.5 * random.random()
tle.right(20 * a)
b = 1.5 * random.random()
draw_branch_flower(len - 10 * b)
tle.left(40 * a)
draw_branch_flower(len - 10 * b)
tle.right(20 * a)
tle.up()
tle.backward(len)
tle.down()
編寫畫櫻花樹旁邊的地上的花瓣函數(shù)draw_ground_flower。
def draw_ground_flower(flower_num):
'''
繪制地上掉落的花瓣
:param flower_num: 花瓣數(shù)量
:return:
'''
for i in range(flower_num):
a = 200 - 400 * random.random()
b = 10 - 20 * random.random()
tle.up()
tle.forward(b)
tle.left(90)
tle.forward(a)
tle.down()
tle.color('lightcoral')
tle.circle(1)
tle.up()
tle.backward(a)
tle.right(90)
tle.backward(b)
調(diào)用櫻花樹相關(guān)的繪圖函數(shù),快速完成繪圖過程。
draw_branch_flower(60) draw_ground_flower(200)
使用exitonclick函數(shù)保持在繪畫完成時(shí),窗口不會(huì)直接關(guān)閉。
scr.exitonclick()

以上就是櫻花樹的全部繪制過程了。
到此這篇關(guān)于Python利用Turtle庫(kù)繪制一顆櫻花樹的文章就介紹到這了,更多相關(guān)Python Turtle櫻花樹內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
科學(xué)計(jì)算NumPy之Ndarray運(yùn)算函數(shù)操作示例匯總
這篇文章主要為大家介紹了科學(xué)計(jì)算NumPy之Ndarray運(yùn)算函數(shù)操作示例匯總,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Python中使用conda?install還是pip?install好
這篇文章主要給大家介紹了關(guān)于Python中使用conda?install還是pip?install好的相關(guān)資料,conda install 和 pip install 都是Python的包管理工具,文中介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09
new_zeros() pytorch版本的轉(zhuǎn)換方式
今天小編就為大家分享一篇new_zeros() pytorch版本的轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02

