python的用處真的是太廣泛了,今天在網上學習查找資料時,看到有網友用python來畫畫。用python畫出一隻兔子,為大家分享一下:如何用python畫一隻兔子?
畫了一隻大耳朵小兔子,靈感來源是jellycat邦尼兔。turtle庫中circle()函數用來畫弧,但和通常先確定原點,再根據半徑、夾角畫弧的方法有所不同。使用之後,便能理解circle()函數的巧妙。收穫是:邊想邊做邊改勝過完美的空想。
在circle(radius,extent)函數中,參數radius取像素值、extent取角度的整數值,兩參數均可取正負值。運行以下代碼,可以直觀地理解circle(radius,extent)函數參數正負值時的繪製特點:
from turtle import *pensize(5)pencolor('green')circle(100,90)pu()goto(0,0)seth(0)pd()pencolor('orange')circle(100,-90)pu()goto(0,0)seth(0)pd()pencolor('blue')circle(-100,90)pu()goto(0,0)seth(0)pd()pencolor('red')circle(-100,-90)———————————————— circle()函數以畫筆當前方向(y')為y軸方向,以經過畫筆當前絕對坐標(x0,假設y0=0)、垂直於y軸的方向為x軸方向,則圓心(即原點)坐標為(x0-radius=0,0),由當前畫筆位置(x0,y0)為弧線起始點,畫出extent角度的圓弧。為了方便理解,我繪製了circle()函數的相對坐標體系,如下圖。需要注意的是:radius為正時,圓心在當前位置左側(如下圖);radius為負時,圓心在當前位置右側;extent為正時,順畫筆當前方向繪製,extent為負時,逆畫筆當前方向繪製。
下面是繪製兔子的完整代碼:
#繪製大耳朵兔from turtle import *speed(10)#小兔的面部color('pink')pensize(5)circle(radius=100)#臉#眼睛pencolor('black')#左眼pu()goto(-45,92)pd()begin_fill()color((0,0,0),(0,0,0.1))circle(radius=15)#右眼pu()goto(45,92)pd()circle(radius=15)end_fill()#鼻子pu()goto(20,60)color('pink')pd()begin_fill()goto(-20,60)goto(0,45)goto(20,60)end_fill()#嘴goto(0,45)goto(0,40)seth(-90)circle(10,120)pu()goto(0,40)seth(-90)pd()circle(-10,120)#小兔的耳朵#左耳pu()goto(-60,180)#seth(200)pd()circle(radius=350,extent=90)goto(-98,110)#右耳pu()goto(60,180)#seth(-20)pd()circle(radius=-350,extent=90)goto(98,110)#小兔的身體pu()goto(20,3)seth(-25)pd()circle(radius=-250,extent=25)circle(radius=-135,extent=260)seth(50)circle(radius=-250,extent=25)##小兔的胳膊#左臂pu()seth(180)goto(-30,-3)pd()#小短胳膊##circle(radius=270,extent=20)##circle(radius=20,extent=190)circle(radius=248,extent=30)circle(radius=29,extent=185)#右臂pu()seth(0)goto(30,-3)pd()circle(radius=-248,extent=30)circle(radius=-27,extent=184)##小兔的腳##左腳pu()goto(-162,-260)#pd()seth(0)circle(radius=41)#右腳pu()goto(164,-260)pd()circle(radius=41)done()———————————————— 現在個人學習python感覺越來越有趣,python太有實用性了