竟然能用Python畫出神奇寶貝!?太屌了吧!

竟然能用Python畫出神奇寶貝!?太屌了吧!

 

竟然能用Python畫出神奇寶貝!?太屌了吧!
竟然能用Python畫出神奇寶貝!?太屌了吧!

 

你有想過Python也能畫出皮卡丘嗎?今天要為你介紹的”繪圖方式”不是PS,不是AI,是Python!

 

大家都想到前陣子上映的動畫電影「名偵探皮卡丘」票房成績不俗,賣座程度僅次於「復仇者聯盟-終局之戰」。雖然電影中的那隻皮卡丘是以「賤萌」的形式呈現,但也激起許多工程師小時候時看「神奇寶貝」中,那隻呆萌的皮卡丘的回憶。

前陣子上映的名偵探皮卡丘劇照

在大陸就有熱血的 Python 工程師使用 Python 的 「海龜」 Turtle 繪圖模塊,畫起皮卡丘來,而且還畫得唯妙唯肖的!先看看以下的效果吧:

 


大陸網友文摘菌用Python來畫皮卡丘,畫得唯妙唯肖 (圖片來源:https://mp.weixin.qq.com)
 

步驟:先選好畫板大小、設置好畫筆顏色、粗細;定位好位置後,開始畫鼻子、頭、耳朵、眼睛、嘴、身體、手腳、尾巴。

Python 的 Turtle graphics 模塊,中文直譯為「海龜繪圖」,是提供給兒童學習程式語言用的模組。現在你想像螢幕上有一隻帶著畫筆的海龜在 X,Y 軸平面座標上,從座標 (0,0) 出發。你給牠下指令「turtle.forward(15)」,牠就會往前走 15 像素的距離,接者你下指令「turtle.right(25)」,牠就會朝向順時針 25 度的方向轉彎。只要你不斷對著海龜重複著這類型的指令,海龜就能完成一幅圖畫。

 


透過定位下指令移動畫筆位置的海龜繪圖(Turtle graphics)模塊
 

上圖用 Python 繪製的皮卡丘,就是靠著不斷的指定座標、定位與方向而完成的。以下直接提供這範例的部分 Python 程式碼給你參考:

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 海龜模組畫圖,它的原理非常簡單,只要先定位好座標再畫出曲線即可。難的是每個部位的位置如何定位。如果你是Python初學,又不想畫那麼複雜的話,可先試水溫,學習只畫出皮卡丘的臉即可 (如下圖)。作法可參考另一位網友的 CSDN 博客文章: 「教大家用python画皮卡丘的脸」。

 


Python初學者可先學習畫出皮卡丘的臉 (圖片來源:https://blog.csdn.net/hl_zmfh/article/details/83215693)
 

其實除了 Python 之外, Java也有 Turtle 海龜繪圖功能呢!有興趣的人別再用PS和以拉,去嘗試用 Java 畫皮卡丘看看吧!

 

 

延伸閱讀超精彩:

從充滿不確定到監控水中的即時狀態,人工智慧推翻傳產的舊型態!

要是你還認為人工智慧的辨識功能只能靠聲音,那你就大錯特錯啦!

天啊,運河眾多的荷蘭,為了方便,竟發明了AI人工智慧自駕船?

行銷人員年終想升遷?擁有SEO優化技能讓你脫穎而出

城市規劃跟肥胖會有什麼關係啊?來學Python課程見真章!

阿里巴巴也頭疼!! 現在開始學習網路行銷課程,就有機會幫馬雲解決煩惱!!

中國IT教育領導品牌 達內教育集團第一家海外授權中心

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料