詳解用Python練習(xí)畫個(gè)美隊(duì)盾牌

0 環(huán)境
Python版本:3.6.6
操作系統(tǒng):Mac OS Mojave 10.14.2
1 引言
最近我媳婦每天晚上吃飯時(shí)候也拿手機(jī)看,上廁所也在看。
看著看著還會笑?WTF?你在干嘛呢?
沒錯(cuò),她在看美隊(duì)……
這男人比我?guī)??…?/p>
比我有錢?……
還是比我有腔調(diào)?……
答案很明顯,我相信你們的眼睛都是雪亮的。
那問題來了,作為一個(gè)男人,怎么能忍?雖然是個(gè)明星,雖然是假的,雖然已經(jīng)挽回不了敗局了……那我就送個(gè)美隊(duì)的盾牌給你吧……
這篇文章不是Turtle的入門篇,所以關(guān)于基本的畫筆使用小胖不在這篇里贅述了。有興趣的可以留言,我會根據(jù)你們的反饋來寫一篇或者一個(gè)系列。
2 實(shí)戰(zhàn)
先來看一個(gè)效果圖:

用過Turtle的都知道,畫筆是需要抬手和落筆的。這一點(diǎn)一定要理解,因?yàn)橛?jì)算機(jī)是很死板的,你的每一個(gè)動作都必須告訴他,包括GC。
所以你的畫筆一旦落下,經(jīng)過的每一處都會留下字跡。如果希望隔開一段距離就需要經(jīng)過「抬筆」->「移動畫筆」->「落筆」。
所以我們先把這個(gè)動作封裝成一個(gè)函數(shù):
def setpen(x, y): # 抬筆 t.penup() # 移動畫筆到(x, y) t.goto(x, y) # 落筆 t.pendown() t.setheading(0)
接下來就來畫盾牌。盾牌的話,注意觀察美隊(duì)盾牌,顏色是「紅」->「白」->「紅」->「藍(lán)」。
這里有一個(gè)技巧,就是后面填充的圓圈背景色是可以覆蓋之前畫的圓圈的背景色。
def circle(x, y, r, color):
# 為了保證畫出的圓夠圓,所以我們把圓的邊設(shè)置的多一些
n = 36
angle = 360 / n
pi = 3.1415926
# 周長
c = 2 * pi * r
# 每條邊的長度
l = c / n
# 起始位置
start_x = x - l / 2
start_y = y + r
# 移動畫筆
setpen(start_x, start_y)
# 選擇畫筆顏色
t.pencolor(color)
# 選擇背景色
t.fillcolor(color)
# 填充
t.begin_fill()
for i in range(n):
t.forward(l)
t.right(angle)
t.end_fill()
接下來就是畫里面那個(gè)白色的五角星了,這里就不注釋了,因?yàn)楹彤嬋Φ倪^程差不多。
def five_star(l):
setpen(0, 0)
t.setheading(162)
t.forward(150)
t.setheading(0)
t.fillcolor('WhiteSmoke')
t.begin_fill()
t.hideturtle()
t.penup()
for i in range(5):
t.forward(l)
t.right(144)
t.end_fill()
主函數(shù):
def sheild(): circle(0, 0, 300, 'red') circle(0, 0, 250, 'white') circle(0, 0, 200, 'red') circle(0, 0, 150, 'blue') five_star(284) if __name__ == '__main__': sheild() # 結(jié)束烏龜圖 turtle.done()
以上所述是小編給大家介紹的用Python練習(xí)畫個(gè)美隊(duì)盾牌詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
python psutil監(jiān)控進(jìn)程實(shí)例
今天小編就為大家分享一篇python psutil監(jiān)控進(jìn)程實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
python的time模塊和datetime模塊實(shí)例解析
這篇文章主要介紹了python的time模塊和datetime模塊實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
python爬蟲使用正則爬取網(wǎng)站的實(shí)現(xiàn)
這篇文章主要介紹了python爬蟲使用正則爬取網(wǎng)站的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
利用python在大量數(shù)據(jù)文件下刪除某一行的例子
今天小編就為大家分享一篇利用python在大量數(shù)據(jù)文件下刪除某一行的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
OpenCV半小時(shí)掌握基本操作之像素加減乘除&邏輯運(yùn)算
這篇文章主要介紹了OpenCV基本操作之像素加減乘除&邏輯運(yùn)算,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
如何計(jì)算 tensorflow 和 pytorch 模型的浮點(diǎn)運(yùn)算數(shù)
FLOPs 是 floating point operations 的縮寫,指浮點(diǎn)運(yùn)算數(shù),可以用來衡量模型/算法的計(jì)算復(fù)雜度。本文主要討論如何在 tensorflow 1.x, tensorflow 2.x 以及 pytorch 中利用相關(guān)工具計(jì)算對應(yīng)模型的 FLOPs,需要的朋友可以參考下2022-11-11

