【閱讀全文】
我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、達(dá)川ssl等。為上千企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的達(dá)川網(wǎng)站制作公司
后唐李煜曾說(shuō)道,櫻花落盡春將困,秋千架下歸時(shí)。漏暗斜月遲遲,花在枝。櫻花落盡的時(shí)候春天也將過(guò)去了,秋千架下歸去時(shí)。天上的斜月姍姍來(lái)遲,花還在枝頭。
關(guān)于python畫圖相關(guān)的,我們一直使用的是turtle來(lái)畫,用專業(yè)的非標(biāo)準(zhǔn)庫(kù)來(lái)做專業(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è)箭頭一直無(wú)法消除,有知道的大佬煩請(qǐng)留言說(shuō)一下解決辦法,感激不盡!
tle = Turtle() # 初始化小烏龜畫筆對(duì)象
tle.hideturtle() # 全局隱藏畫筆
tle.clear() # 清除屏幕
tle.speed(0) # 設(shè)置畫筆速度為0,也就是最快的畫筆速度
scr = Screen() # 初始化屏幕對(duì)象
getscreen().tracer(30, 0) # 返回一個(gè)TurtleScreen類的繪圖對(duì)象,并開(kāi)啟繪畫,加速繪畫過(guò)程
scr.screensize(bg='white') # 設(shè)置背景顏色
開(kāi)始繪制,設(shè)置開(kāi)始時(shí)的畫筆相關(guān)的屬性或參數(shù)。
tle.left(90)
tle.up()
tle.backward(150)
tle.down()
tle.color('sienna')
接下來(lái)是編寫兩個(gè)函數(shù),一個(gè)是用于生成樹(shù)枝/樹(shù)干并在對(duì)應(yīng)的樹(shù)枝旁邊畫上櫻花。另一個(gè)則是在櫻花樹(shù)的地上鋪滿掉落的櫻花,這樣的思路來(lái)源于CSDN博客平臺(tái),向大佬遞茶!
編寫畫櫻花樹(shù)的樹(shù)枝/樹(shù)干部分/樹(shù)枝櫻花的函數(shù)draw_branch_flower。
def draw_branch_flower(len):
'''
繪制樹(shù)枝/花函數(shù)
:param len: 樹(shù)枝長(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ù)旁邊的地上的花瓣函數(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)用櫻花樹(shù)相關(guān)的繪圖函數(shù),快速完成繪圖過(guò)程。
draw_branch_flower(60)
draw_ground_flower(200)
使用exitonclick函數(shù)保持在繪畫完成時(shí),窗口不會(huì)直接關(guān)閉。
scr.exitonclick()
以上就是櫻花樹(shù)的全部繪制過(guò)程了,完整的代碼塊文件請(qǐng)?jiān)诠娞?hào)內(nèi)回復(fù)'1001'獲取,直接運(yùn)行即可。
【往期精彩】
Python 讀取PDF文件為文本字符并轉(zhuǎn)換為音頻...
python 獲取最新房?jī)r(jià)信息-以北京房?jī)r(jià)為例
辦公自動(dòng)化:Image圖片轉(zhuǎn)換成PDF文檔存儲(chǔ)...
python做一個(gè)微型美顏圖片處理器,十行代碼即可完成...
用python做一個(gè)文本翻譯器,自動(dòng)將中文翻譯成英文,超方便的!
小王,給這2000個(gè)客戶發(fā)一下節(jié)日祝福的郵件...
python 一行命令開(kāi)啟網(wǎng)絡(luò)間的文件共享...
PyQt5 批量刪除 Excel 重復(fù)數(shù)據(jù),多個(gè)文件、自定義重復(fù)項(xiàng)一鍵刪除...
再見(jiàn)XShell,這款國(guó)人開(kāi)源的終端命令行工具更nice!
python 表情包下載器,輕松下載上萬(wàn)個(gè)表情包、斗圖不用愁...
Python 自動(dòng)清理電腦垃圾文件,一鍵啟動(dòng)即可...
有了jmespath,處理python中的json數(shù)據(jù)就變成了一種享受...