週末學習了一下turtle庫的基本函數,試著畫了一隻大耳朵小兔子,靈感來源是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為負時,逆畫筆當前方向繪製。
以上為個人的學習理解,初識turtle,不當之處歡迎指正。
原創作品,僅供學習使用,侵權者自重!
#绘制大耳朵兔 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畫一隻兔子-turtle庫circle()畫圓函數的詳細用法介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!