【為什麼我們要挑選這篇文章】不是畫家、設計師、動畫師,既不會用畫筆,也不會操作 Photoshop、Illustrator 等繪圖軟體?沒關係,我們會 Python 啊!
下文,工程師將開展設計新技能:用 Python 畫皮卡丘!(責任編輯:郭家宏)
還記得小時候瘋狂收集和交換神奇寶貝卡片的經歷嗎?
還記得和小夥伴拿著精靈球,一起召喚小精靈的中二模樣嗎?
最近上映的《POKÉMON 名偵探皮卡丘》,是否會讓你秒回童年,進入那個充滿神奇寶貝的世界,和小智一起踏上成為寶可夢大師的旅程呢?
雖然,電影中的皮卡丘是一位中年大叔,但是看過電影的文摘菌(本文作者)依然想起了寶可夢世界裡 20 多年不變的明星寶可夢。
♦ TO 推薦閱讀:【GitHub 上破萬顆星】Python 新手 100 天學習計劃,這次學不會算我輸!
皮卡丘臉頰兩邊有著小小的電氣袋,因此他獨有的能力就是可以放電。在動畫片中,小智的皮卡丘性格十分害羞,稍有不滿就亂放電電人。
小時候也想擁有一隻會放電的皮卡丘,長大後漸漸明白,這種高度智慧,會放電的「動物」只存在於夢中。
素描、PS 太弱了!工程師就該用 Python 畫皮卡丘阿
不怕!不怕!雖然現實中沒有,但是我們可以畫一隻!素描什麼的都弱爆了,我們來用 Python 畫一隻。
經過一整天的苦戰,從未接觸過 turtle 庫的文摘菌實現了從 0 到 1,成就感滿滿。

基本思路:選好畫板大小,設置好畫筆顏色,粗細,定位好位置,然後畫鼻子,頭、耳朵,眼睛,嘴,身體,手腳,尾巴。
♦ TO 推薦閱讀:【內附程式碼】工程師技能大全:如何用 Python 寫出所有的演算法?
都知道,turtle 是 python 內建的一個比較有趣味的模組,俗稱海龜繪圖,它是基於 tkinter 模組打造,提供一些簡單的繪圖工具。
turtle 的繪圖方式非常簡單直觀,想像有一隻尾巴上沾著顏料的小海龜在電腦屏幕上爬行,隨著它的移動就能畫出線條來。
使用海龜作圖,我們不僅能夠只用幾行程式碼就創建出令人印象深刻的視覺效果,而且還可以跟隨海龜看看每行程式碼如何影響到它的移動。這能夠幫助我們理解程式碼的邏輯。所以海龜作圖也常被用作新手學習 Python 的一種方式。
更豐富詳細的功能及知識可以參考官方文檔
用 turtle 畫圖邏輯不難,難的是「定位」
瞭解了 tuttle 的用法之後就可以開始實戰了。
部分程式碼示範:
import turtle as t
def infoPrt():
print(‘coordinate: ‘ + str(t.pos()))
print(‘angle: ‘ + str(t.heading()))t.pensize(3)
t.hideturtle()
t.colormode(255)
t.color(“black”)
t.setup(700, 650)
t.speed(10)
t.st()
#t.dot()
t.pu()
#t.goto(-150,100)
t.goto(-210,86)
t.pd()
infoPrt()# 頭
print(‘頭’)
t.seth(85)
t.circle(-100,50)
#t.seth(78)
#t.circle(-100,25)
infoPrt()t.seth(25)
t.circle(-170,50)
infoPrt()# 右耳
print(‘右耳’)
t.seth(40)
#t.circle(-250,52)
t.circle(-250,30)
infoPrt()
# 右耳尖
t.begin_fill()
# 左
t.circle(-250,22)
#t.fillcolor(“pink”)
# 右
t.seth(227)
t.circle(-270, 15)prePos = t.pos()
infoPrt()
# 尾巴
t.pu()
t.setpos(p_tail)
t.pd()t.begin_fill()
t.seth(50)
t.fd(25)
t.seth(-50)
t.fd(30)
p_tail1=t.pos
t.seth(-140)
t.fd(36)
t.end_fill()
t.seth(39)# 右尾和h1
t.fd(72)# 右尾和v1
t.seth(125)
t.fd(48)# 右尾和h2
t.seth(40)
t.fd(53)# 右尾和v2
t.seth(88)
t.fd(45)# 右尾和h3
t.seth(35)
t.fd(105)
# 右尾和v3
t.seth(105)
t.circle(850, 8)
#t.fd(105)
t.seth(215)
#t.fd(125)
t.circle(850, 11)
t.seth(280)
t.fd(110)
t.seth(220)
t.fd(50)
t.seth(309)
t.fd(56)
完整程式碼需要 360 行,為了限於篇幅,只放了一部分程式碼。
使用 turtle 畫圖,思路其實很簡單,就是透過 trutle 模組實現基本的圓,橢圓,曲線等,難點在於如何定位每個部位的位置。
對於初學者,文摘菌建議先入手比較簡單的項目,比如:

這個皮卡丘,只給出了臉部繪畫,相比全身畫像,需要考慮的構件相對少一些,適合新手入門。
註:第二個項目程式碼參考網路資料,此為連結,感謝丁彥軍對具體程式碼做了修改。
♦ TO 推薦閱讀:GitHub 神人整理出一份 Python 開源清單:15 個領域、181 個開源項目任你用
(本文經 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈 实现童年宝可梦,教你用Python画一只属于自己的皮卡丘〉 。首圖來源:Max Pixel CC Licensed)



