turtle的基本使用


 

 

方法
簡寫
描述
例子
移動和繪制
forward()
fd()
前進
turtle.forward(10):前進10個單位
backward()
bk()、back()
后退
turtle.backward():后退10個單位
right()
rt()
右轉
turtle.rignt(30):向右旋轉30°
left
lt()
左轉
turtle.left(30):向左旋轉30°
goto()、setpos()、setposition()
 
定位/前往
turtle.goto(0,0):小烏龜移動到原點處
setx()
 
設置x坐標
turtle.setx(10):設置x坐標為10個單位
sety()
 
設置y坐標
turtle.sety(10):設置y坐標為10個單位
setheading()
seth()
設置朝向
 turtle.seth(90):設置小烏龜為90度方向
home()
 
返回原點
turtle.home():小烏龜返回原點,並設置朝向為初始方向
circle()
 
畫圓
turtle.circle(100,360,6):畫出一個半徑為100的圓的內切六邊形
turtle.circle(100,180):畫出一條半徑為100,夾角為180度的圓弧
dot()
 
畫點
turtle.dot(10,'red'):畫出大小為10的紅點
stamp()
 
印章(光標指針形狀)
turtle.stamp():在當前位置印制小烏龜形狀(光標指針形狀),返回印章id
clearstamp()
 
清除印章
turtle.clearstamp(指定印章id):清除指定印章
clearstamps()
 
清除多個印章
turtle.clearstamps(2):清除前2個印章
undo()
 
撤銷一個小烏龜動作
turtle.undo():撤銷一個小烏龜動作,使用for循環撤銷多個動作
speed()
 
設置畫筆速度
turtle.speed(10):設置【0-10】速度等級,數字越大越快
獲取小烏龜的狀態
position()
pos()
獲取小烏龜當前坐標位置
turtle.position():獲取小烏龜當前坐標
towards()
 
目標方向(角度)
turtle.towards(0,0):假如小烏龜初始位置在(10,10),那么這個值為從這點到(0,0)之間的連線的夾角,方向和旋轉根據小烏龜的模式決定(standard、logo)
xcor()
 
獲取x坐標
turtle.xcor():返回當前小烏龜的x坐標
ycor()
 
獲取y坐標
turtle.ycor():返回當前小烏龜的y坐標
heading()
 
獲取朝向
turtle.heading():返回當前小烏龜的朝向
distance()
 
獲取距離
turtle.distance(0,0):假如小烏龜初始位置在(10,10),那么這個值為從這點到(0,0)之間的距離
設置與度量單位
degrees()
 
設置角度
turtle.degrees(400):設置總的角度為400度,如果之前的總的角度為360度,且當前角度為90度,那么設置了400后,此時的當前位置度數為100度,計算:90/360=100/400
radians()
 
設置弧度
turtle.radians():設置角度為弧度,如當前角度為90度,設置后弧度為1.57,即90°=π/2≈1.57
繪圖狀態
pendown()
pd()、down()
畫筆落下
turtle.down():畫筆落下
penup()
pu()、up()
畫筆抬起
turtle.up():畫筆抬起
pensize()
width()
設置畫筆粗細(大小)
turtle.pensize():設置畫筆大小
pen()
 
設置畫筆屬性
turtle.pen(fillcolor='yellow',pencolor='red',pensize='5'):設置多個畫筆屬性
isdown()
 
畫筆是否落下
turtle.isdown():判斷畫筆是否落下,返回布爾值
顏色控制
color()
 
設置顏色
turtle.color('red','yellow'):設置和返回畫筆顏色為紅色,填充顏色為黃色
pencolor()
 
畫筆顏色
turtle.pencolor('red'):設置和返回畫筆顏色為紅色
fillcolor()
 
填充顏色
turtle.fillcolor('red'):設置和返回填充顏色為紅色
填充
filling()
 
是否填充
turtle.filling():判斷是否填充,返回布爾值
begin_fill()
 
開始填充
turtle.begin_fill():在繪制要填充的圖形之前調用
end_fill()
 
結束填充
turtle.end_fill():從開始填充到畫完要填充的圖形后調用,結束填充
更多繪圖控制
reset()
 
重置指定Turtle對象的小烏龜和繪圖
turtle.reset():刪除小烏龜繪制的圖形,並回到原點,所有設置回復默認值
clear()
 
清空指定Turtle對象所繪的圖形
turtle.clear():刪除指定小烏龜的繪圖,turtle為一個Turtle的對象,若有多個Turtle對象時,指定一個進行刪除
write()
 
書寫文本,turtle.write(arg,move='False',align='center',font=('Arial',8,'normal')):arg為寫的內容,align為對齊方式,
turtle.write('你好',True,align='center',font=('Arial',10,'normal')):在畫布中寫入文本為“你好”,以小烏龜位置居中,字體為Arial,大小為10,字體類型為正常,bold為加粗,寫完后小烏龜移動到文本的右下角(move為True)
可見性
showturtle()
st()
顯示小烏龜
turtle.st():顯示小烏龜
hideturtle()
ht()
隱藏小烏龜
turtle.ht():隱藏小烏龜
isvisible()
 
是否可見
turtle.isvisible():判斷小烏龜是否可見,返回布爾值
外觀
shape()
 
設置小烏龜形狀
turtle.shape('turtle'):設置小烏龜的形狀為烏龜, arrow:箭頭,turtle:龜,circle:圓,square:正方形,triangle:三角形,classic:經典
resizemode()
 
設置大小調整模式
turtle.resizemode('auto'):根據畫筆出席值調整小烏龜的外觀大小,“user”:根據拉伸因子和輪廓寬度值調整小烏龜的外觀,兩者是由shapesize()設置,“noresize”:默認不調整小烏龜的外觀大小
shapesize()
turtlesize()
設置小烏龜形狀大小,當且僅當大小調整模式設為“user”時起作用
先設置turtle.resizemode('user')再使用turtle.shapesize(3,5,4):設置小烏龜圖形拉伸值,第一個值:3為垂直拉伸值,第二個值:5位水平拉伸值,第三個值:4為輪廓線的粗細值 加輪廓線后:
shearfactor()
 
設置或返回當前的剪切因子,不改變小烏龜的朝向
turtle.shearfactor(1):設置小烏龜與x軸的正切值為1,拉伸小烏龜 正切值為1,小烏龜與x軸夾角45°
settiltangle()
 
設置傾角,不改變小烏龜的朝向
turtle.settiltangle(45):旋轉小烏龜形狀指向與x軸成45°夾角
tiltangle()
 
設置或返回當前的傾角,不改變小烏龜的朝向
turtle.tiltangle():返回當前小烏龜的傾角
tilt()
 
設置小烏龜形狀自其當前的傾角轉動角度傾斜,不改變小烏龜的朝向
turtle.tilt(45):在當前傾角下轉動45°(當前傾角為45°)
shapetransform()
 
設置或返回小烏龜形狀的當前變形矩陣
turtle.shapetransform(4,-1,0,2):(沒搞懂)
get_shapepoly()
 
返回以坐標值對元組表示的當前形狀多邊形
turtle.shapetransform(4,-1,0,2)
turtle.get_shapepoly():(沒搞懂)
使用事件(還沒理解透)
onclick()
 
onclick(fun,btn=1,add=None):當鼠標點擊小烏龜時,執行函數(fun為傳入的函數),btn值(1為鼠標左鍵,2為鼠標中間鍵,3為鼠標右鍵),add為True則將添加一個新綁定
def trun(x,y):
     right(90)
onclick(turn)
當鼠標點擊小烏龜時,執行函數trun,向右旋轉90°
onrelease()
 
onrelease(fun,btn=1,add=None):當鼠標點擊小烏龜釋放鼠標時,執行函數(fun為傳入的函數),btn值(1為鼠標左鍵,2為鼠標中間鍵,3為鼠標右鍵),add為True則將添加一個新綁定
def trun(x,y):
     right(90)
onrelease(turn)
當鼠標點擊小烏龜釋放鼠標時,執行函數trun,向右旋轉90°
ondrag()
 
ondrag(fun,btn=1,add=None):當鼠標點擊小烏龜釋放鼠標時,執行函數(fun為傳入的函數),btn值(1為鼠標左鍵,2為鼠標中間鍵,3為鼠標右鍵),add為True則將添加一個新綁定
turtle.ondrag(turtle.goto):點擊並拖動小烏龜在畫布上移動手繪線條
特殊小烏龜方法
begin_poly()
 
開始記錄多邊形
turtle.home()
turtle.begin_poly()
turtle.fd(100)
turtle.left(20)
turtle.fd(30)
turtle.left(60)
turtle.fd(50)
turtle.end_poly()
p = turtle.get_poly()
screen.register_shape("myFavouriteShape", p)
end_poly()
 
結束記錄多邊形
get_poly()
 
獲取多邊形
clone()
 
克隆一個Turtle對象
a = turtle.Turtle()
b = a.clone():克隆一個Turtle對象
getturtle()
getpen()
獲取小烏龜畫筆
a = turtle.getturtle():獲取一個Turtle對象
getscreen()
 
獲取屏幕
a = turtle.getscreen():獲取一個Screen對象
setundobuffer()
 
設置撤銷緩沖區
turtle.setundobuffer(50):設置撤銷緩沖區次數上限,最多只能撤銷50次小烏龜的動作
undobufferentries()
 
返回撤銷緩沖區條目數
turtle.undobufferentries():返回撤銷緩沖區里剩下的條目數
窗口控制
bgcolor()
 
設置背景顏色
screen.bgcolor('white'):設置畫布背景顏色
bgpic()
 
設置背景圖片
screen.bgpic('C:\\Users\\Archer\\Pictures\\Camera Roll\\圖片.jpg'):設置背景圖片
clearscreen()
clear()
從中刪除所有小烏龜的全部繪圖。將已清空的TurtleScreen重置為初始狀態:白色背景,無背景圖片,無事件綁定並啟用追蹤
screen.clearscreen():清除所有小烏龜繪圖,並重置狀態
resetscreen()
reset()
重置
screen.resetscreen():重置所有小烏龜為初始狀態,並清除所繪制的圖形,但使用clone()克隆的Turtle對象所畫的圖形滅有
screensize()
 
設置屏幕大小
screen.screensize(800,1000,'white'):設置寬為800,高為1000,背景顏色為白色的窗口,有滾動條
setworldcoordinates()
 
screen.setworldcoordinates(llx,lly,urx,ury):llx-為畫布左下角的x坐標,lly-為畫布左下角的y坐標,urx-為畫布右上角的x坐標, ury-為畫布右上角的y坐標
screen.setworldcoordinates(-50,-7.5,50,7.5):(沒搞懂怎么用)
動畫控制
delay()
 
延遲(毫秒):連續兩次畫布刷新的間隔時間
screen.delay(5):設置延遲值為5毫秒
tracer()
 
tracer(n,delay):追蹤小烏龜的繪圖,當n為0或為False時,禁用追蹤,默認為1;delay為延遲(毫秒)
screen.tracer(8,25):沒第8次屏幕刷新會執行,延遲25毫秒(還不太懂怎么用)
update()
 
更新
screen.update():執行一次TurtleScreen刷新。在禁用追蹤時使用
使用屏幕事件
listen()
 
監聽
screen.listen():監聽鍵盤的點擊操作,與鍵盤點擊事件一起用,沒有監聽,鍵盤操作無效果
onkeyrelease()
onkey()
當鍵盤按下並釋放
def up():
     turtle.fd(10)
screen.listen()
screen.onkey(up,'Up'):按下鍵盤並釋放上方向鍵,執行up函數,前進10個單位
onkeypress()
 
當鍵盤按下
def up():
     turtle.fd(10)
screen.listen()
screen.onkeypress(up,'Up'):按住鍵盤上方向鍵,一直執行up函數,就一直前進10個單位,松開鍵盤停止執行
onscreenclick()
onclick()
onclick(fun,btn=1,add=None):當鼠標點擊畫布屏幕時,執行函數(fun為傳入的函數),btn值(1為鼠標左鍵,2為鼠標中間鍵,3為鼠標右鍵),add為True則將添加一個新綁定
def turn(x,y):
     turtle.right(90)
screen.onclick(turn):當鼠標點擊畫布屏幕時執行turn函數
ontimer()
 
screen.ontimer(fun,t=0):定時器,在達到t毫秒后,執行fun函數
def up():
     turtle.fd(10)
screen.ontimer(up,1000):程序執行1秒后,執行up函數,前進10個單位
mainloop()
done()
主循環
screen.mainloop():開始事件循環,必須作為一個小烏龜繪圖程序的結束語句,否則程序會被關閉
設置與特殊方法
mode()
 
設置小烏龜的模式
"standard"模式:初始方向(朝右),逆時針,默認模式
"logo"模式:初始方向(朝上),順時針
screen.mode('logo'):設置小烏龜模式為logo模式
colormode()
 
screen.colormode(cmode):設置顏色模式,cmode值為1.0或255,構成顏色的RGB三元組數字必須在0-cmode范圍之間,默認數值為1.0
screen.colormode(255):設置顏色模式為0-255之間,則可使用screen.bgcolor(255,255,255)      :白色
getcanvas()
 
獲取畫布對象
cv = screen.getcanvas():獲取畫布對象,沒搞懂怎么用
getshapes()
 
獲取所有小烏龜的形狀信息
screen.getshapes():返回當前所有小烏龜的形狀的列表
register_shape()
addshape()
添加一個gif格式的圖片到圖形列表中
screen.register_shape('C:\\Users\\Archer\\Pictures\\Camera Roll\\太極.gif')
print(screen.getshapes())
再通過turtle.shape('C:\\Users\\Archer\\Pictures\\Camera Roll\\太極.gif')設置小烏龜形狀
turtles()
 
獲取所有小烏龜的對象列表
screen.turtles():返回屏幕上所有小烏龜的對象列表
window_height()
 
獲取窗口高度
screen.window_height():返回窗口高度
window_width()
 
獲取窗口寬度
screen.window_width():返回窗口寬度
輸入方法
textinput()
 
screen.textinput(title,prompt):文本輸入,title為窗口標題,prompt為提示輸入信息
screen.textinput('新年問候','你好'):彈出一個對話框窗口用來輸入一個字符串,輸入后返回這個字符串,取消返回None
numinput()
 
screen.numinput(title,prompt,default,minval,maxval):數字輸入,title為窗口標題,prompt為提示輸入信息,default為默認值,minval為最小值,maxval為最大值
screen.numinput('調查問卷','請問你多少歲了',18,0,150):彈出一個對話框窗口用來輸入一個數字,輸入后返回這個數值,取消返回None
Screen專有方法
bye()
 
退出
screen.bye():關閉繪圖窗口
exitonclick()
 
當鼠標左鍵點擊時退出窗口
screen.exitonclick():鼠標左鍵點擊后關閉窗口
setup()
 
screen.setup(w,h,x,y):設置主窗口大小和位置,w為寬度(像素),如為浮點數,則表示屏幕占比,h為高度,x為初始位置距離屏幕左邊多少像素,y為初始位置距離屏幕上邊多少像素,沒有設置xy默認居中
screen.setup(500,500,0,0):窗口大小為寬500像素,高為500像素,在屏幕左上角打開窗口
title()
 
設置窗口標題
screen.title('Welcome to the turtle zoo!'):設置窗口標題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM