天天看點

如何用python畫金字塔形狀_用 Python 畫一隻福鼠

如何用python畫金字塔形狀_用 Python 畫一隻福鼠

今年這個鼠年,盡管隻是剛過了一個開頭,但現實仿佛把我們很多年才需要經曆的不好的事情,都在一瞬間抛向了我們,這個鼠年好像缺了點福氣,本節我們使用 Python 畫一隻福鼠,為大家增添點福氣,我們需要用到的是 turtle 庫。

頭部

首先,我們畫福鼠的頭部,頭部主要包括:眼睛、耳朵、鼻子、胡子、牙齒等,代碼實作如下所示:

import turtledef head():    turtle.color('black')    # 臉輪廓    turtle.fillcolor('#FFE4B5')    turtle.begin_fill()    # 落筆    turtle.pd()    # 畫一個半徑為指定值的圓    turtle.circle(50)    # 提筆    turtle.pu()    turtle.end_fill()    # 移動到指定坐标位置,參數 1 代表 x 軸位置,參數 2 代表 y 軸位置    turtle.goto(50, 60)    turtle.pd()    turtle.circle(25, 255)    turtle.pu()    turtle.goto(60, 80)    turtle.pd()    turtle.circle(-10, -200)    turtle.pu()    turtle.goto(-50, 60)    turtle.pd()    # 按逆時針改變行進方向    turtle.seth(180)    turtle.circle(-25, 255)    turtle.pu()    turtle.goto(-60, 80)    turtle.pd()    turtle.circle(10, -200)    turtle.pu()    # 眼睛    turtle.goto(10, 65)    turtle.seth(45)    turtle.pd()    turtle.circle(-8, 360)    turtle.pu()    turtle.goto(13, 62)    turtle.fillcolor('black')    turtle.begin_fill()    turtle.pd()    turtle.circle(-4, -360)    turtle.pu()    turtle.end_fill()    turtle.goto(-10, 65)    turtle.seth(135)    turtle.pd()    turtle.circle(8, 360)    turtle.pu()    turtle.goto(-13, 62)    turtle.fillcolor('black')    turtle.begin_fill()    turtle.pd()    turtle.circle(4, 360)    turtle.pu()    turtle.end_fill()    # 鼻子    turtle.goto(-6, 45)    turtle.seth(70)    turtle.fillcolor('red')    turtle.begin_fill()    turtle.pd()    turtle.circle(-6, 150)    turtle.pu()    turtle.end_fill()    turtle.goto(-6, 45)    turtle.seth(-70)    turtle.fillcolor('red')    turtle.begin_fill()    turtle.pd()    turtle.circle(6, 150)    turtle.pu()    turtle.end_fill()    # 嘴    turtle.goto(0, 40)    turtle.seth(270)    turtle.pd()    turtle.forward(7)    turtle.pu()    turtle.seth(200)    turtle.pd()    turtle.circle(-15, 60)    turtle.pu()    turtle.goto(0, 33)    turtle.seth(-20)    turtle.pd()    turtle.circle(15, 60)    turtle.pu()    # 牙齒    turtle.goto(0, 33)    turtle.seth(270)    turtle.pd()    turtle.forward(13)    turtle.seth(180)    turtle.forward(6)    turtle.seth(90)    turtle.forward(13)    turtle.pu()    turtle.goto(6, 33)    turtle.seth(270)    turtle.pd()    turtle.forward(13)    turtle.seth(180)    turtle.forward(6)    turtle.pu()    # 胡子    turtle.goto(30, 30)    turtle.seth(8)    turtle.pd()    turtle.circle(-40, 40)    turtle.pu()    turtle.goto(30, 25)    turtle.seth(-5)    turtle.pd()    turtle.circle(-40, 40)    turtle.pu()    turtle.goto(30, 20)    turtle.seth(-18)    turtle.pd()    turtle.circle(-40, 40)    turtle.pu()    turtle.goto(-30, 30)    turtle.seth(172)    turtle.pd()    turtle.circle(40, 40)    turtle.pu()    turtle.goto(-30, 25)    turtle.seth(188)    turtle.pd()    turtle.circle(40, 40)    turtle.pu()    turtle.goto(-30, 20)    turtle.seth(196)    turtle.pd()    turtle.circle(40, 40)    turtle.pu()
           

看一下效果:

如何用python畫金字塔形狀_用 Python 畫一隻福鼠

帽子

接下來給福鼠畫一頂帽子,我們打算把這頂帽子畫得古風一點,原型選了電視劇中宋朝官員的官帽,代碼實作如下所示:

def hat():    turtle.goto(-20, 97)    turtle.pd()    turtle.seth(80)    turtle.forward(20)    turtle.seth(60)    turtle.circle(-20, 140)    turtle.seth(-85)    turtle.forward(18)    turtle.pu()    turtle.goto(50, 115)    turtle.pd()    turtle.goto(-50, 115)    turtle.pu()    turtle.end_fill()    turtle.goto(19, 115)    turtle.pd()    turtle.goto(50, 115)    turtle.seth(0)    turtle.fillcolor('gold2')    turtle.begin_fill()    turtle.circle(10)    turtle.seth(90)    turtle.circle(10, 90)    turtle.seth(0)    turtle.circle(10, 90)    turtle.seth(270)    turtle.circle(10, 90)    turtle.seth(180)    turtle.circle(10, 90)    turtle.pu()    turtle.end_fill()    turtle.goto(-19, 115)    turtle.pd()    turtle.goto(-50, 115)    turtle.seth(0)    turtle.fillcolor('gold2')    turtle.begin_fill()    turtle.circle(10)    turtle.seth(90)    turtle.circle(10, 90)    turtle.seth(0)    turtle.circle(10, 90)    turtle.seth(270)    turtle.circle(10, 90)    turtle.seth(180)    turtle.circle(10, 90)    turtle.pu()    turtle.end_fill()
           

看一下效果:

如何用python畫金字塔形狀_用 Python 畫一隻福鼠

身體

我們知道福鼠本身并不是真實存在的,而是一種以動物為原型的虛拟化形象,這種形象一般都是頭部保留了動物本身的面貌,而身體是人類身體的形狀,比如:西遊記中孫悟空、豬八戒就是這樣的,這裡我們也把福鼠的身體畫成人身體的形狀,代碼實作如下所示:

def body():    # 上半身    turtle.goto(-25, 8)    turtle.seth(240)    turtle.pd()    turtle.circle(150, 15)    turtle.seth(270)    turtle.circle(40, 15)    turtle.circle(15, 65)    turtle.seth(0)    turtle.forward(10)    turtle.circle(10, 100)    turtle.seth(90)    turtle.circle(10, 100)    turtle.seth(180)    turtle.forward(10)    turtle.pu()    turtle.goto(25, 8)    turtle.seth(-60)    turtle.pd()    turtle.circle(-150, 15)    turtle.seth(270)    turtle.circle(-40, 15)    turtle.circle(-15, 65)    turtle.seth(180)    turtle.forward(10)    turtle.circle(-10, 100)    turtle.seth(90)    turtle.circle(-10, 100)    turtle.seth(0)    turtle.forward(10)    turtle.pu()    turtle.goto(-20, 4)    turtle.pd()    turtle.goto(-16, -4)    turtle.goto(16, -4)    turtle.goto(20, 4)    turtle.pu()    turtle.goto(0, -5)    turtle.pd()    turtle.goto(0, -50)    turtle.pu()    turtle.goto(-30, -48)    turtle.pd()    turtle.goto(-30, -60)    turtle.pu()    turtle.goto(30, -48)    turtle.pd()    turtle.goto(30, -60)    turtle.pu()    turtle.goto(-30, -55)    turtle.pd()    turtle.goto(30, -55)    turtle.pu()    turtle.goto(-30, -60)    turtle.pd()    # 參數 1 為繪制顔色,參數 2 為填充顔色    turtle.color('black', 'red')    turtle.begin_fill()    turtle.goto(30, -60)    turtle.pu()    # 下半身    turtle.goto(-25, -60)    turtle.pd()    turtle.goto(-35, -100)    turtle.goto(-20, -100)    turtle.goto(-0, -60)    turtle.goto(20, -100)    turtle.goto(35, -100)    turtle.goto(25, -60)    turtle.end_fill()    turtle.pu()    turtle.goto(-33, -100)    turtle.pd()    turtle.color('black', 'blue')    turtle.begin_fill()    turtle.seth(270)    turtle.circle(6, 180)    turtle.end_fill()    turtle.pu()    turtle.goto(33, -100)    turtle.pd()    turtle.color('black', 'blue')    turtle.begin_fill()    turtle.seth(270)    turtle.circle(-6, 180)    turtle.end_fill()    turtle.pu()
           

看一下效果:

如何用python畫金字塔形狀_用 Python 畫一隻福鼠

文字

福鼠當然少不了祝福語,我找了四句:鼠你有錢、鼠你健康、鼠你快樂、鼠你幸運,最後,我們把這四個詞語分别畫在福鼠的四周,代碼實作如下所示:

def word():    turtle.color('red')    turtle.goto(-30, 150)    turtle.pd()    turtle.write('鼠', move=False, align='center', font=('Arial', 14, 'normal'))    turtle.pu()    turtle.goto(-10, 150)    turtle.pd()    turtle.write('你', move=False, align='center', font=('Arial', 14, 'normal'))    turtle.pu()    turtle.goto(10, 150)    turtle.pd()    turtle.write('有', move=False, align='center', font=('Arial', 14, 'normal'))    turtle.pu()    turtle.goto(30, 150)    turtle.pd()    turtle.write('錢', move=False, align='center', font=('Arial', 14, 'normal'))    turtle.pu()    turtle.goto(-30, -150)    turtle.pd()    turtle.write('鼠', move=False, align='center', font=('Arial', 14, 'normal'))    turtle.pu()    turtle.goto(-10, -150)    turtle.pd()    turtle.write('你', move=False, align='center', font=('Arial', 14, 'normal'))    turtle.pu()    turtle.goto(10, -150)    turtle.pd()    turtle.write('健', move=False, align='center', font=('Arial', 14, 'normal'))    turtle.pu()    turtle.goto(30, -150)    turtle.pd()    turtle.write('康', move=False, align='center', font=('Arial', 14, 'normal'))    turtle.pu()    turtle.goto(-90,-10)    turtle.pd()    turtle.write('鼠', move=False, align='center', font=('Arial', 14, 'normal'))    turtle.pu()    turtle.goto(-90, -30)    turtle.pd()    turtle.write('你', move=False, align='center', font=('Arial', 14, 'normal'))    turtle.pu()    turtle.goto(-90, -50)    turtle.pd()    turtle.write('快', move=False, align='center', font=('Arial', 14, 'normal'))    turtle.pu()    turtle.goto(-90, -70)    turtle.pd()    turtle.write('樂', move=False, align='center', font=('Arial', 14, 'normal'))    turtle.pu()    turtle.goto(90, -10)    turtle.pd()    turtle.write('鼠', move=False, align='center', font=('Arial', 14, 'normal'))    turtle.pu()    turtle.goto(90, -30)    turtle.pd()    turtle.write('你', move=False, align='center', font=('Arial', 14, 'normal'))    turtle.pu()    turtle.goto(90, -50)    turtle.pd()    turtle.write('幸', move=False, align='center', font=('Arial', 14, 'normal'))    turtle.pu()    turtle.goto(90, -70)    turtle.pd()    turtle.write('運', move=False, align='center', font=('Arial', 14, 'normal'))    turtle.pu()    turtle.hideturtle()
           

調用代碼如下:

if __name__ == '__main__':    head()    hat()    body()    word()    # 隐藏畫筆    turtle.hideturtle()    # 停止畫筆,但不關閉窗體    turtle.done()
           

看一下最終效果:

如何用python畫金字塔形狀_用 Python 畫一隻福鼠

總結

本文我們使用 Python 的 turtle 庫畫了一隻福鼠,不知道與大家想象中的福鼠形象一樣嗎?如果不一樣呢,大家可以自己動手把這隻福鼠修改成自己理想中的樣子。

示例代碼:https://github.com/JustDoPython/python-100-day

PS: 公号内回複 :Python,即可進入Python 新手學習交流群,一起 100天計劃! -END- Python 技術 關于 Python 都在這裡

如何用python畫金字塔形狀_用 Python 畫一隻福鼠

繼續閱讀