社會(huì)人的撩妹技能

這兩天刷爆朋友圈的莫過于一則「啥是佩奇」的視頻短片,看完之后不由的感嘆一句,好久沒見過這么溫情幽默的廣告了!

作為一個(gè)python的學(xué)習(xí)者,讓我萌生了用python畫社會(huì)人的想法。

看這個(gè)圖像可以發(fā)現(xiàn),佩奇由各種曲線、類拋物線、類圓、類橢圓等組成。這里提到的“類”,是小豬佩奇的構(gòu)圖精髓,一種手繪風(fēng)格,而不是標(biāo)準(zhǔn)刻板的線條。

思路如下:選好畫板大小,設(shè)置好畫筆顏色,粗細(xì),定位好位置,依次畫鼻子,頭、耳朵,眼睛,腮,嘴,身體,手腳,尾巴。

環(huán)境

語言:python3.7

編輯器:Pycharm

具體代碼如下:

fromturtleimport*

defnose(x,y):#鼻子

penup()#提起筆

goto(x,y)#定位

pendown()#落筆,開始畫

setheading(-30)#將烏龜?shù)姆较蛟O(shè)置為to_angle/為數(shù)字(0-東、90-北、180-西、270-南)

begin_fill()#準(zhǔn)備開始填充圖形

a=0.4

foriinrange(120):

if0<=i<30or60<=i<90:

a=a+0.08

left(3)#向左轉(zhuǎn)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)#返回或設(shè)置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()

defhead(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

foriinrange(60):

if0<=i<30or60<=i<90:

a=a+0.08

lt(3)#向左轉(zhuǎn)3度

fd(a)#向前走a的步長

else:

a=a-0.08

lt(3)

fd(a)

end_fill()

defears(x,y):#耳朵

color((255,155,192),"pink")

penup()

goto(x,y)

pendown()

begin_fill()

setheading(100)

circle(-50,50)

circle(-10,120)

circle(-50,54)

end_fill()

penup()

setheading(90)

forward(-12)

setheading(0)

forward(30)

pendown()

begin_fill()

setheading(100)

circle(-50,50)

circle(-10,120)

circle(-50,56)

end_fill()

defeyes(x,y):#眼睛

color((255,155,192),"white")

penup()

setheading(90)

forward(-20)

setheading(0)

forward(-95)

pendown()

begin_fill()

circle(15)

end_fill()

color("black")

penup()

setheading(90)

forward(12)

setheading(0)

forward(-3)

pendown()

begin_fill()

circle(3)

end_fill()

color((255,155,192),"white")

penup()

seth(90)

forward(-25)

seth(0)

forward(40)

pendown()

begin_fill()

circle(15)

end_fill()

color("black")

penup()

setheading(90)

forward(12)

setheading(0)

forward(-3)

pendown()

begin_fill()

circle(3)

end_fill()

defcheek(x,y):#腮

color((255,155,192))

penup()

goto(x,y)

pendown()

setheading(0)

begin_fill()

circle(30)

end_fill()

defmouth(x,y):#嘴

color(239,69,19)

penup()

goto(x,y)

pendown()

setheading(-80)

circle(30,40)

circle(40,80)

defbody(x,y):#身體

color("red",(255,99,71))

penup()

goto(x,y)

pendown()

begin_fill()

setheading(-130)

circle(100,10)

circle(300,30)

setheading(0)

forward(230)

setheading(90)

circle(300,30)

circle(100,3)

color((255,155,192),(255,100,100))

setheading(-135)

circle(-80,63)

circle(-150,24)

end_fill()

defhands(x,y):#手

color((255,155,192))

penup()

goto(x,y)

pendown()

setheading(-160)

circle(300,15)

penup()

setheading(90)

forward(15)

setheading(0)

forward(0)

pendown()

setheading(-10)

circle(-20,90)

penup()

setheading(90)

forward(30)

setheading(0)

forward(237)

pendown()

setheading(-20)

circle(-300,15)

penup()

setheading(90)

forward(20)

setheading(0)

forward(0)

pendown()

setheading(-170)

circle(20,90)

deffoot(x,y):#腳

pensize(10)

color((240,128,128))

penup()

goto(x,y)

pendown()

setheading(-90)

forward(40)

setheading(-180)

color("black")

pensize(15)

fd(20)

pensize(10)

color((240,128,128))

penup()

setheading(90)

forward(40)

setheading(0)

forward(90)

pendown()

setheading(-90)

forward(40)

setheading(-180)

color("black")

pensize(15)

fd(20)

deftail(x,y):#尾巴

pensize(4)

color((255,155,192))

penup()

goto(x,y)

pendown()

seth(0)

circle(70,20)

circle(10,330)

circle(70,30)

defsetting():#參數(shù)設(shè)置

pensize(4)

hideturtle()#使烏龜無形(隱藏)

colormode(255)#將其設(shè)置為1.0或255.隨后 顏色三元組的r,g,b值必須在0 .. cmode范圍內(nèi)

color((255,155,192),"pink")

setup(840,500)

speed(10)

defmain():

setting()#畫布、畫筆設(shè)置

nose(-100,100)#鼻子

head(-69,167)#頭

ears(0,160)#耳朵

eyes(0,140)#眼睛

cheek(80,10)#腮

mouth(-20,30)#嘴

body(-32,-8)#身體

hands(-56,-45)#手

foot(2,-177)#腳

tail(148,-155)#尾巴

done()

if__name__ =='__main__':

main()

從代碼來看,我們可以發(fā)現(xiàn),主要用到了turtle庫,它是python內(nèi)置的一個(gè)比較有趣味的模塊,俗稱「海龜繪圖」,它是基于tkinter模塊打造的,提供了一些簡單的繪圖工具。

如果你想了解turtle庫更多信息,可以訪問官方文檔:https://docs.python.org/3/library/turtle.html.

總結(jié):通過trutle庫實(shí)現(xiàn)基本的圓、橢圓、曲線等,難點(diǎn)在于,如何定位每個(gè)部分的位置(畫之前可以先畫個(gè)草圖)。

利用turtle庫,我還畫過玫瑰花,作為一個(gè)python學(xué)習(xí)者,還不趕快把這么牛逼的撩妹技能學(xué)到手。后臺(tái)回復(fù)「玫瑰花」就可以獲得源碼。

今天的兩個(gè)小項(xiàng)目適合入門學(xué)習(xí)者練手,光跑一遍程序,就會(huì)讓你對(duì)python上癮,還等什么呢?趕緊操練起來吧。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • from turtle import *def nose(x, y):# 鼻子 penup()# 提起筆 go...
    進(jìn)步源于積累閱讀 806評(píng)論 0 1
  • 黑白鏡子原創(chuàng),禁止轉(zhuǎn)載 她是一個(gè)極度缺乏安全感的孩子。 指尖劃過商店里因?yàn)楹涠Y(jié)了一團(tuán)霧氣的櫥窗玻璃,呆滯的眼...
    黑白鏡子閱讀 275評(píng)論 0 1
  • 每天睡前洗漱是個(gè)麻煩事兒,洗臉、刷牙、洗澡、洗襪子、洗內(nèi)衣……特別是每天睡前洗襪子真夠煩的。 結(jié)婚后本...
    0一粒塵埃0閱讀 553評(píng)論 0 0
  • 兒子今天是中秋節(jié),看到兒子以學(xué)習(xí)日語這種有意義的方式度過節(jié)日,媽媽真為你感到開心。現(xiàn)在的社會(huì)是一個(gè)充滿競...
    赤色風(fēng)鈴66閱讀 186評(píng)論 0 0
  • 人工智能在人類社會(huì)的作用開始越發(fā)的表現(xiàn)出色但這并不意味著人工智能以無所不能人類進(jìn)化這么多年,在這些領(lǐng)域擁有著人工智...
    黑土錢閱讀 540評(píng)論 0 0