0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

啥是佩琦?我們用Python畫給你看!

電子工程師 ? 來源:工程師李察 ? 2019-01-19 10:26 ? 次閱讀

剛剛,

被《啥是佩奇》這支廣告片刷屏了。

佩奇明明是個喜劇角色,

卻看哭了所有人。

啥是佩奇

快過年了

在農村爺爺給城里的小孫子打電話

小孫子說想要“佩奇”

為了滿足小孫子的愿望

爺爺開始滿村子找佩奇

開片爺爺在電話這頭的一段話就很抓人心,

全世界的爺爺都是這樣疼孫兒的,

一下子就讓觀眾有共情的心理。

一句“什么是佩奇?”

鋪墊了爺爺接下來的一段尋找佩奇之路,

最后爺爺找到的佩奇骨絡清奇,

卻是圈主見過的全世界最可愛的小豬佩奇!

不知道大家看完什么感覺

反正我看完是哭了

我看網(wǎng)友們也紛紛留言

說自己哭笑兩重奏

看著爺爺滿村子找佩奇,我有點心疼了。為此我想用純粹的Python來告訴爺爺,啥是佩奇?

基本思路:選好畫板大小,設置好畫筆顏色,粗細,定位好位置,依次畫鼻子,頭、耳朵,眼睛,腮,嘴,身體,手腳,尾巴,完事。

都知道,turtle 是 python 內置的一個比較有趣味的模塊,俗稱 海龜繪圖,它是基于 tkinter 模塊打造,提供一些簡單的繪圖工具。

在海龜作圖中,我們可以編寫指令讓一個虛擬的(想象中的)海龜在屏幕上來回移動。這個海龜帶著一只鋼筆,我們可以讓海龜無論移動到哪都使用這只鋼筆來繪制線條。通過編寫代碼,以各種很酷的模式移動海龜,我們可以繪制出令人驚奇的圖片。使用海龜作圖,我們不僅能夠只用幾行代碼就創(chuàng)建出令人印象深刻的視覺效果,而且還可以跟隨海龜看看每行代碼如何影響到它的移動。這能夠幫助我們理解代碼的邏輯。所以海龜作圖也常被用作新手學習 Python 的一種方式。更豐富詳細的功能及知識可以參考官方文檔:

https://docs.python.org/3/library/turtle.html

了解了tuttle的用法之后就可以開始實戰(zhàn)了。

代碼示例:

from turtle import*def nose(x,y):#鼻子 penup()#提起筆 goto(x,y)#定位 pendown()#落筆,開始畫 setheading(-30)#將烏龜?shù)姆较蛟O置為to_angle/為數(shù)字(0-東、90-北、180-西、270-南) begin_fill()#準備開始填充圖形 a=0.4 for i in range(120): if 0<=i<30 or 60<=i<90: ? ? ? ? ? ?a=a+0.08 ? ? ? ? ? ?left(3) #向左轉3度 ? ? ? ? ? ?forward(a) #向前走a的步長 ? ? ? ?else: ? ? ? ? ? ?a=a-0.08 ? ? ? ? ? ?left(3) ? ? ? ? ? ?forward(a) ? ?end_fill()#填充完成 ? ?penup() ? ?setheading(90) ? ?forward(25) ? ?setheading(0) ? ?forward(10) ? ?pendown() ? ?pencolor(255,155,192)#畫筆顏色 ? ?setheading(10) ? ?begin_fill() ? ?circle(5) ? ?color(160,82,45)#返回或設置pencolor和fillcolor ? ?end_fill() ? ?penup() ? ?setheading(0) ? ?forward(20) ? ?pendown() ? ?pencolor(255,155,192) ? ?setheading(10) ? ?begin_fill() ? ?circle(5) ? ?color(160,82,45) ? ?end_fill()def head(x,y):#頭 ? ?color((255,155,192),"pink") ? ?penup() ? ?goto(x,y) ? ?setheading(0) ? ?pendown() ? ?begin_fill() ? ?setheading(180) ? ?circle(300,-30) ? ?circle(100,-60) ? ?circle(80,-100) ? ?circle(150,-20) ? ?circle(60,-95) ? ?setheading(161) ? ?circle(-300,15) ? ?penup() ? ?goto(-100,100) ? ?pendown() ? ?setheading(-30) ? ?a=0.4 ? ?for i in range(60): ? ? ? ?if 0<=i<30 or 60<=i<90: ? ? ? ? ? ?a=a+0.08 ? ? ? ? ? ?lt(3) #向左轉3度 ? ? ? ? ? ?fd(a) #向前走a的步長 ? ? ? ?else: ? ? ? ? ? ?a=a-0.08 ? ? ? ? ? ?lt(3) ? ? ? ? ? ?fd(a) ? ?end_fill()

def cheek(x,y):#腮 color((255,155,192)) penup() goto(x,y) pendown() setheading(0) begin_fill() circle(30) end_fill()def mouth(x,y): #嘴 color(239,69,19) penup() goto(x,y) pendown() setheading(-80) circle(30,40) circle(40,80)def setting(): #參數(shù)設置 pensize(4) hideturtle() #使烏龜無形(隱藏) colormode(255) #將其設置為1.0或255.隨后 顏色三元組的r,g,b值必須在0 .. cmode范圍內 color((255,155,192),"pink") setup(840,500) speed(10)def main(): setting() #畫布、畫筆設置 nose(-100,100) #鼻子 head(-69,167) #頭 ears(0,160) #耳朵 eyes(0,140) #眼睛 cheek(80,10) #腮 mouth(-20,30) #嘴 done()if __name__ == '__main__': main()

思路其實很簡單,就是通過trutle模塊實現(xiàn)基本的圓,橢圓,曲線等,難點在于,如何定位每個部位的位置(建議先草圖畫畫)。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模塊
    +關注

    關注

    7

    文章

    2727

    瀏覽量

    47614
  • 邏輯
    +關注

    關注

    2

    文章

    833

    瀏覽量

    29486
  • python
    +關注

    關注

    56

    文章

    4801

    瀏覽量

    84865

原文標題:啥是佩琦?我們用Python畫給你看!

文章出處:【微信號:BigDataDigest,微信公眾號:大數(shù)據(jù)文摘】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【社區(qū)之星】范嘉:當沒用的知識多到彼此交聯(lián),你就會發(fā)現(xiàn)他們價值連城

    ,但是解決不了,請問你有遇到這種情況么?如果有,請問最后你是怎么解決的? 范嘉: 這個問題其實也是一直困擾我們的問題。如果說設備測試,專業(yè)設備捕捉信號。那肯定是最好的。但是對于大
    發(fā)表于 01-13 11:33

    ADS1294和ADS1298有區(qū)別???

    您好,請教一下您這個ADS1294和ADS1298有區(qū)別???還有帶R的和不帶R的有區(qū)別?。课?b class='flag-5'>看的都是一個手冊。順便再問一下您,ADS1291和ADS1292有
    發(fā)表于 12-25 06:31

    使用Python進行串口通信的案例

    當然!以下是一個使用Python進行串口通信的簡單示例。這個示例展示了如何配置串口、發(fā)送數(shù)據(jù)以及接收數(shù)據(jù)。我們將使用 pyserial 庫,這是一個非常流行的用于串口通信的Python庫。 首先,你
    的頭像 發(fā)表于 11-22 09:11 ?324次閱讀

    【每天學點AI】一個例子帶你了解Python裝飾器到底在干嘛!

    今天我們來聊聊一種能給你的代碼變得“加料”的神器——Python裝飾器。就像一杯咖啡,原本它是苦的,為了讓它符合我的口味,我給它添加了糖,添加之后就完美的符合了我的口味。那么,裝飾器又是如何給代碼
    的頭像 發(fā)表于 09-20 16:54 ?578次閱讀
    【每天學點AI】一個例子帶你了解<b class='flag-5'>Python</b>裝飾器到底在干嘛!

    第二屆大會回顧第25期 | OpenHarmony上的Python設備應用開發(fā)

    Python以其簡單、易學和功能強大而聞名,有著廣泛的用戶群體。采用Python開發(fā)有助于降低OpenHarmony的學習門檻。如何在OpenHarmony上Python開發(fā)設備應用
    的頭像 發(fā)表于 08-27 11:53 ?750次閱讀
    第二屆大會回顧第25期 | OpenHarmony上的<b class='flag-5'>Python</b>設備應用開發(fā)

    python寫驗證環(huán)境cocotb

    本文介紹了cocotb的安裝、python tb文件的寫法、xrun仿真cocotb的腳本等,我們來看看體驗如何。
    的頭像 發(fā)表于 07-24 09:38 ?583次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>python</b>寫驗證環(huán)境cocotb

    如何實現(xiàn)Python復制文件操作

    Python 中有許多“開蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,你將會看到一些 Python 實現(xiàn)文件復制的特殊方法。下面
    的頭像 發(fā)表于 07-18 14:53 ?448次閱讀

    pycharm進行python爬蟲的步驟

    以下是使用PyCharm進行Python爬蟲的步驟: 安裝PyCharm和Python 首先,您需要安裝PyCharm和Python。PyCharm是一個流行的Python集成開發(fā)環(huán)境
    的頭像 發(fā)表于 07-11 10:11 ?906次閱讀

    使用Python進行自然語言處理

    在探討使用Python進行自然語言處理(NLP)的廣闊領域時,我們首先需要理解NLP的基本概念、其重要性、Python在NLP中的優(yōu)勢,以及如何通過Python實現(xiàn)一些基礎的NLP任務
    的頭像 發(fā)表于 07-04 14:40 ?479次閱讀

    離線安裝器安裝的idf,其創(chuàng)建的Python虛擬環(huán)境無激活腳本是怎么回事?

    如題,離線安裝器安裝的idf,其創(chuàng)建的Python虛擬環(huán)境無激活腳本,具體如下圖所示: 反而用vscode插件安裝的idf有,如下圖:vscode插件安裝的idf的Python虛擬環(huán)境 提問:沒有
    發(fā)表于 06-11 06:49

    關于labview調用python問題

    大哥們,請教一下,為啥我labview調用python寫好的功能,但無法輸入?yún)?shù) ?
    發(fā)表于 05-08 11:48

    衛(wèi)星上的金箔有?-多層隔熱組件概述

    點擊藍字關注我們我們經??吹叫l(wèi)星上包一層金箔或者銀箔,用來裝飾、好看、大氣?他們有什么?我們都知道太空很冷,但是太空的寒冷和我們地球的寒冷
    的頭像 發(fā)表于 05-08 08:36 ?931次閱讀
    衛(wèi)星上的金箔有<b class='flag-5'>啥</b><b class='flag-5'>用</b>?-多層隔熱組件概述

    如何使用Python生成四位隨機數(shù)字

    為了實現(xiàn)這些目標,Python我們提供了random() 模塊。random() 是一個內置的 Python 模塊,用于生成隨機數(shù)。
    的頭像 發(fā)表于 04-15 12:47 ?710次閱讀

    i2c通信實驗左移一位有?

    這個圈著的左移一位有?
    發(fā)表于 04-08 08:08

    如何使用linux下gdb來調試python程序

    中,我們將介紹如何在Linux中使用GDB來調試Python程序。 一、安裝GDB和Python調試符號 在使用GDB調試Python程序之前,需要安裝GDB和
    的頭像 發(fā)表于 01-31 10:41 ?2682次閱讀