Python入門必學,用Python練習畫個美隊盾牌

美隊盾牌

0 環境

Python版本:3.6.6python

操做系統:Mac OS Mojave 10.14.2ide

1 引言

最近我媳婦天天晚上吃飯時候也拿手機看,上廁所也在看。函數

看着看着還會笑?WTF?你在幹嗎呢?動畫

沒錯,她在看美隊……spa

這男人比我帥?……操作系統

比我有錢?……code

仍是比我有腔調?……blog

答案很明顯,我相信大家的眼睛都是雪亮的。ci

那問題來了,做爲一個男人,怎麼能忍?雖然是個明星,雖然是假的,雖然已經挽回不了敗局了……那我就送個美隊的盾牌給你吧……rem

這篇文章不是Turtle的入門篇,因此關於基本的畫筆使用小胖不在這篇裏贅述了。有興趣的能夠留言,我會根據大家的反饋來寫一篇或者一個系列。

2 實戰

先來看一個效果圖:

美隊盾牌

用過Turtle的都知道,畫筆是須要擡手和落筆的。這一點必定要理解,由於計算機是很死板的,你的每個動做都必須告訴他,包括GC。

因此你的畫筆一旦落下,通過的每一處都會留下字跡。若是但願隔開一段距離就須要通過「擡筆」->「移動畫筆」->「落筆」。

因此咱們先把這個動做封裝成一個函數:

def setpen(x, y):
    # 擡筆
    t.penup()
    # 移動畫筆到(x, y)
    t.goto(x, y)
    # 落筆
    t.pendown()
    t.setheading(0)

接下來就來畫盾牌。盾牌的話,注意觀察美隊盾牌,顏色是「紅」->「白」->「紅」->「藍」。

這裏有一個技巧,就是後面填充的圓圈背景色是能夠覆蓋以前畫的圓圈的背景色。

def circle(x, y, r, color):
    # 爲了保證畫出的圓夠圓,因此咱們把圓的邊設置的多一些
    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()

接下來就是畫裏面那個白色的五角星了,這裏就不註釋了,由於和畫圈的過程差很少。

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()

主函數:

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()
    # 結束烏龜圖
    turtle.done()

3 總結

這是一篇用Python畫畫的文章,更多有趣、好玩的Python應用、實戰盡在知識星球「人人都是Pythonista」。

關注公衆號「Python專欄」,回覆:美隊盾牌,獲取全套代碼!

Python專欄二維碼

相關文章
相關標籤/搜索