python學習筆記 turtle庫
turtle(海龜)是Python重要的標準庫之一,它能夠進行基本的圖形繪製。turtle圖形繪製的概念誕生於1969年,成功應用於LOGO程式語言。
turtle庫繪製圖形有一個基本框架:一個小海龜在座標系中爬行,其爬行軌跡形成了繪製圖形。剛開始繪製時,小海龜位於畫布正中央,此處座標為(0,0),前進方向為水平右方。
一、用import保留字對turtle庫的引用有如下3種方式,效果相同:
1.import turtle
對turtle庫中函式呼叫採用turtle.<函式名>( )形式:
2.from turtle import * (當程式中有多個庫時容易混淆產生錯誤)
對turtle庫中函式呼叫採用<函式名>( )形式,不再使用turtle.作為前導:
3. import turtle as t
保留字as將turtle庫給予別名t, 則對turtle庫中函式呼叫採用更簡潔的t.<函式名>( )形式:
二、繪圖的基礎知識
1.繪圖視窗設定命令
turtle.setup(400,300,200,100):引數以此(寬,高,距離螢幕左邊距離,距離螢幕上方距離),螢幕左上角原點,單位畫素。
2.運動命令
turtle.goto(x,y):直接跳轉到(x,y)點,以繪圖視窗中心為原點,向右為x軸,以上為y軸。
turtle.fd(d)、turtle.forward(d):以當前方向,往前行進d畫素。
turtle.bk(d)、turtle.backword(d):保持當前方向不變,往後退行d畫素。
turtle.circle(r,angle):從當前位置以r為半徑圓的angle角度旋轉。
3.方向設定命令
turtle.seth(angle):以x軸方向為起點將方向偏轉為angle度,逆時針為正。只改變行進方向但不行進。
turtle.left(angle):在當前行進方向的基礎上,向左旋轉angle度。
turtle.right(angle):在當前行進方向的基礎上,向右旋轉angle度。
4.畫筆控制命令
turtle.penup():抬筆
turtle.pendown():落筆
turtle.pensize(width):畫筆粗細
turtle.pencolor(顏色名red/RGB三元組/顏色編碼):畫筆顏色
turtle.fillcolor(colorstring):繪製圖形的填充顏色
turtle.begin_fill():開始填充
turtle.end_fill():結束填充
turtle.filling():返回當前是否在填充狀態
5.全域性控制命令
turtle.clear():清空turtle視窗,但是turtle的位置和狀態不會改變
turtle.reset():清空視窗,重置turtle狀態為起始狀態
turtle.undo():撤銷上一個turtle動作
turtle.isvisible():返回當前turtle是否可見 stamp():複製當前圖形 turtle.write(s[,font=("font-name",font_size,"font_type")]):寫文字,s為文字內容,font是字型的引數,裡面分別為字型名稱,大小和型別;font為可選項, font的引數也是可選項三、繪圖例子
兔の繪圖程式碼如下:
#繪製大耳朵兔 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()
圖片: