1. 程式人生 > 實用技巧 >python學習筆記 turtle庫

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

圖片: