引用 引用的基本使用 作用:給變數起別名 語法:數據類型 &別名 = 原名 引用註意事項 引用必須初始化 引用一旦初始化,就不可以更改(一個別名只能初始化一次:只可以跟一個原名) 引用做函數參數 函數傳參時,可以用引用技術讓形參修飾實參 簡化指針修飾形參 #include<iostream> usi ...
後唐李煜曾說道,櫻花落盡春將困,鞦韆架下歸時。漏暗斜月遲遲,花在枝。櫻花落盡的時候春天也將過去了,鞦韆架下歸去時。天上的斜月姍姍來遲,花還在枝頭。
關於python畫圖相關的,我們一直使用的是turtle來畫,用專業的非標準庫來做專業的事兒。將需要使用到的內置庫或者非標準庫全部都導入到當前的代碼塊中。
from time import sleep # 用於控製程序運行時的阻塞停頓
from turtle import * # 繪圖相關介面
import random # 生成隨機數
設置全局需要初始化的對象,以及相關的全局參數設置,這樣就不用在後面每畫一筆進行設置了。
但是畫布上面有一個箭頭一直無法消除,有知道的大佬煩請留言說一下解決辦法,感激不盡!
tle = Turtle() # 初始化小烏龜畫筆對象
tle.hideturtle() # 全局隱藏畫筆
tle.clear() # 清除屏幕
tle.speed(0) # 設置畫筆速度為0,也就是最快的畫筆速度
scr = Screen() # 初始化屏幕對象
getscreen().tracer(30, 0) # 返回一個TurtleScreen類的繪圖對象,並開啟繪畫,加速繪畫過程
scr.screensize(bg='white') # 設置背景顏色
開始繪製,設置開始時的畫筆相關的屬性或參數。
tle.left(90)
tle.up()
tle.backward(150)
tle.down()
tle.color('sienna')
接下來是編寫兩個函數,一個是用於生成樹枝/樹幹併在對應的樹枝旁邊畫上櫻花。另一個則是在櫻花樹的地上鋪滿掉落的櫻花,這樣的思路來源於CSDN博客平臺,向大佬遞茶!
編寫畫櫻花樹的樹枝/樹幹部分/樹枝櫻花的函數draw_branch_flower。
def draw_branch_flower(len):
'''
繪製樹枝/花函數
:param len: 樹枝長度
: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()
編寫畫櫻花樹旁邊的地上的花瓣函數draw_ground_flower。
def draw_ground_flower(flower_num):
'''
繪製地上掉落的花瓣
:param flower_num: 花瓣數量
: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)
調用櫻花樹相關的繪圖函數,快速完成繪圖過程。
draw_branch_flower(60)
draw_ground_flower(200)
使用exitonclick函數保持在繪畫完成時,視窗不會直接關閉。
scr.exitonclick()
以上就是櫻花樹的全部繪製過程了,完整的代碼塊文件請在公眾號內回覆'1001'獲取,直接運行即可。
【往期精彩】
Python 讀取PDF文件為文本字元並轉換為音頻...
python 獲取最新房價信息-以北京房價為例
辦公自動化:Image圖片轉換成PDF文檔存儲...
python做一個微型美顏圖片處理器,十行代碼即可完成...
用python做一個文本翻譯器,自動將中文翻譯成英文,超方便的!
小王,給這2000個客戶發一下節日祝福的郵件...
python 一行命令開啟網路間的文件共用...
PyQt5 批量刪除 Excel 重覆數據,多個文件、自定義重覆項一鍵刪除...
再見XShell,這款國人開源的終端命令行工具更nice!
python 表情包下載器,輕鬆下載上萬個表情包、鬥圖不用愁...
Python 自動清理電腦垃圾文件,一鍵啟動即可...
有了jmespath,處理python中的json數據就變成了一種享受...
歡迎關註作者公眾號【Python 集中營】,專註於後端編程,每天更新技術乾貨,不定時分享各類資料!