歡迎光臨
每天分享高質量文章

Python | 用Python畫個美隊盾牌送給你

來源:程式人生

ID:coder_life

圖片源自:復仇者聯盟

作者

上海小胖

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

看著看著還會笑?WTF?你在幹嘛呢?

沒錯,她在看美隊……

這男人比我帥?……

比我有錢?……

還是比我有腔調?……

答案很明顯,我相信你們的眼睛都是雪亮的。

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

這篇文章不是Turtle的入門篇,所以關於基本的畫筆使用小胖不在這篇裡贅述了。有興趣的可以後臺留言,我會根據你們的反饋來寫一篇或者一個系列。

先來看一個效果圖:

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

好啦,今天的內容就到這了,歡迎留言說說你的想法~


《Linux雲端計算及運維架構師高薪實戰班》2018年11月26日即將開課中,120天衝擊Linux運維年薪30萬,改變速約~~~~

    *宣告:推送內容及圖片來源於網路,部分內容會有所改動,版權歸原作者所有,如來源資訊有誤或侵犯權益,請聯絡我們刪除或授權事宜。

    – END –


    贊(0)

    分享創造快樂