Python繪圖操作之turtle庫(kù)烏龜繪圖全面整理
【函數(shù)表格整理在最下方】
官方文檔網(wǎng)址
繪圖窗口
![\g)]](http://img.jbzj.com/file_images/article/202110/2021101209220924.jpg)
turtle.setup(width, height, startx, starty)
參數(shù):width, height: 輸入寬和高為整數(shù)時(shí), 表示像素; 為小數(shù)時(shí), 表示占據(jù)電腦屏幕的比例,(startx, starty): 這一坐標(biāo)表示矩形窗口左上角頂點(diǎn)的位置, 如果為空,則窗口位于屏幕中心。
- setup設(shè)置窗體大小和位置
- 4個(gè)參數(shù)中后兩個(gè)可選(默認(rèn)居中)
- setup()不是必須的
turtle.screensize(canvwidth=None, canvheight=None, bg=None)
參數(shù)分別為畫布的寬(單位像素), 高, 背景顏色。
如:turtle.screensize(800,600, “green”)
turtle.screensize() #返回默認(rèn)大小(400, 300)
空間坐標(biāo)體系
絕對(duì)坐標(biāo)
![[)]](http://img.jbzj.com/file_images/article/202110/2021101209220925.jpg)
【demo】
import turtle turtle.goto(100, 100) turtle.goto(100, -100) turtle.goto(-100, -100) turtle.goto(-100, 100) turtle.goto(0, 0)
![[]](http://img.jbzj.com/file_images/article/202110/2021101209220926.jpg)
海龜坐標(biāo)
![[)]](http://img.jbzj.com/file_images/article/202110/2021101209220927.jpg)
![[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-HIs9TdaP-1633154999063)(C:\Users\Joy Zhang\AppData\Roaming\Typora\typora-user-images\image-20211002134938669.jpg)]](http://img.jbzj.com/file_images/article/202110/2021101209220928.jpg)
turtle.fd(d)
turtle.bk(d)
turtle.circle(r, angle)(以海龜為中心,向左轉(zhuǎn))
角度坐標(biāo)體系
絕對(duì)角度
![]](http://img.jbzj.com/file_images/article/202110/2021101209220929.jpg)
turtle.seth(angle)
- seth()改變海龜行進(jìn)方向
- seth()只改變方向不行進(jìn)
- angle 絕對(duì)度數(shù)
在這樣基礎(chǔ)上,繼續(xù)turtle.fd(d)
海龜角度
![[)]](http://img.jbzj.com/file_images/article/202110/2021101209220930.jpg)
turtle.left(angle)
turtle.right(angle)
【demo】
import turtle turtle.left(45) turtle.fd(150) turtle.right(135) turtle.fd(300) turtle.left(135) turtle.fd(150) turtle.done()
![[)]](http://img.jbzj.com/file_images/article/202110/2021101209220931.jpg)
RGB色彩體系
每色取值范圍0-255整數(shù)或者0-1小數(shù)。
![[]](http://img.jbzj.com/file_images/article/202110/2021101209220932.jpg)
![[]](http://img.jbzj.com/file_images/article/202110/2021101209221033.jpg)
turtle庫(kù)默認(rèn)采用RGB小數(shù)值,可以使用turtle.colormode(mode)可切換。
- 1.0: RGB小數(shù)值
- 255:RGB整數(shù)值
color參數(shù)的三種形式
- 顏色字符串
turtle.pencolor("purple") - RGB的小數(shù)值:
turtle.pencolor(0.63, 0.13, 0.94) - RGB的元組值:
turtle.pencolor((0.63, 0.13, 0.94))
畫筆控制函數(shù)
把海龜想象成畫筆,畫筆操作后一直有效,一般成對(duì)出現(xiàn)。
turtle.penup()別名:turtle.pu()
將畫筆抬起,海龜在飛行。
turtle.pendown()別名:turtle.pd()
落下畫筆,海龜落下。
turtle.pensize(width)別名:turtle.width(width)
畫筆寬度,海龜?shù)难鼑?/p>
turtle.pencolor(color)color為顏色字符串 或 r,g,b值
畫筆顏色,海龜在涂裝
turtle.speed(speed),設(shè)置畫筆移動(dòng)速度,畫筆繪制的速度范圍[0,10]整數(shù),數(shù)字越大越快。turtle.fillcolor(colorstring)繪制圖形的填充顏色turtle.hideturtle()隱藏畫筆的turtle形狀turtle.showturtle()顯示畫筆的turtle形狀
運(yùn)動(dòng)控制函數(shù)
- 走直線:
turtle.forward(d)別名turtle.fd(d)
d的單位是像素,向前行進(jìn),海龜走直線。
d是行進(jìn)距離,可以是負(fù)數(shù)。
turtle.backward(distance)向當(dāng)前畫筆相反方向移動(dòng)distance像素長(zhǎng)度- 走曲線:
turtle.circle(r, extent = None)
根據(jù)半徑r繪制extent角度(默認(rèn)360)的弧形
圓心默認(rèn)在海龜左手側(cè),如果r是負(fù)的,圓心在海龜右側(cè)。
dot(r)繪制一個(gè)指定直徑和顏色的圓點(diǎn)
![[]](http://img.jbzj.com/file_images/article/202110/2021101209221034.jpg)
方向控制函數(shù)
只改變行進(jìn)方向,不會(huì)改變路線。
分為絕對(duì)角度和海龜角度。
turtle.setheading(angle)別名turtle.seth(angle)
改變行進(jìn)方向,海龜走角度(改變絕對(duì)角度)
![)]](http://img.jbzj.com/file_images/article/202110/2021101209221035.jpg)
turtle.left(angle)海龜向左轉(zhuǎn)turtle.right(angle)海龜向右轉(zhuǎn)
全局控制命令
turtle.clear()清空turtle窗口,但是turtle的位置和狀態(tài)不會(huì)改變turtle.reset()清空窗口,重置turtle狀態(tài)為起始狀態(tài)turtle.undo()撤銷上一個(gè)turtle動(dòng)作turtle.isvisible()返回當(dāng)前turtle是否可見turtle.write(s [,font=("font-name",font_size,"font_type")])寫文本,s為文本內(nèi)容,font是字體的參數(shù),分別為字體名稱,大小和類型;font為可選項(xiàng),font參數(shù)也是可選項(xiàng)
示例
蟒蛇繪制
【demo】
import turtle
turtle.setup(650, 350, 200, 200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
turtle.circle(40, 80)
turtle.circle(-40, 80)
turtle.circle(40, 80/2)
turtle.fd(40)
turtle.circle(16, 180)
turtle.fd(40*2/3)
turtle.done()
![]](http://img.jbzj.com/file_images/article/202110/2021101209221036.jpg)
七段數(shù)碼管日期顯示
import turtle
import time
def drawGap(): # 繪制數(shù)碼管間隔
turtle.penup()
turtle.fd(5)
def drawLine(draw): # 繪制單線
drawGap()
turtle.pendown() if draw else turtle.penup()
turtle.fd(40)
drawGap()
turtle.right(90)
def drawDigit(digit): # 繪制單個(gè)數(shù)字
drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,6,8] else drawLine(False)
turtle.left(90)
drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False)
drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False)
turtle.left(180)
turtle.penup()
turtle.fd(20)
def drawData(date):
turtle.pencolor("red")
for i in date:
if i == '-':
turtle.write("年", font=("Arial", 18, "normal"))
turtle.pencolor("green")
turtle.fd(40)
elif i == '=':
turtle.write("月", font=("Arial", 18, "normal"))
turtle.fd(40)
elif i == '+':
turtle.write("日", font=("Arial", 18, "normal"))
else:
drawDigit(eval(i))
def main():
turtle.setup(800,350,200,200)
turtle.penup()
turtle.fd(-300)
turtle.pensize(5)
turtle.color("purple")
drawData(time.strftime("%Y-%m=%d+", time.gmtime()))
turtle.hideturtle()
turtle.done()
main()

太陽花
import turtle
import time
# 同時(shí)設(shè)置pencolor=color1, fillcolor=color2
turtle.color("red", "yellow")
turtle.begin_fill()
for _ in range(50):
turtle.forward(200)
turtle.left(170)
turtle.end_fill()
turtle.mainloop()

庫(kù)函數(shù)表格整理
畫筆運(yùn)動(dòng)命令
turtle.forward(distance)
向當(dāng)前畫筆方向移動(dòng)distance像素長(zhǎng)度
turtle.backward(distance)
向當(dāng)前畫筆相反方向移動(dòng)distance像素長(zhǎng)度
turtle.right(degree)
順時(shí)針移動(dòng)degree°
turtle.left(degree)
逆時(shí)針移動(dòng)degree°
turtle.pendown()
移動(dòng)時(shí)繪制圖形,缺省時(shí)也為繪制
turtle.goto(x,y)
將畫筆移動(dòng)到坐標(biāo)為x,y的位置
turtle.penup()
提起筆移動(dòng),不繪制圖形,用于另起一個(gè)地方繪制
turtle.circle()
畫圓,半徑為正(負(fù)),表示圓心在畫筆的左邊(右邊)畫圓
setx( )
將當(dāng)前x軸移動(dòng)到指定位置
sety( )
將當(dāng)前y軸移動(dòng)到指定位置
setheading(angle)
設(shè)置當(dāng)前朝向?yàn)閍ngle角度
home()
設(shè)置當(dāng)前畫筆位置為原點(diǎn),朝向東。
dot®
繪制一個(gè)指定直徑和顏色的圓點(diǎn)
畫筆控制命令
turtle.fillcolor(colorstring)
繪制圖形的填充顏色
turtle.color(color1, color2)
同時(shí)設(shè)置pencolor=color1, fillcolor=color2
turtle.filling()
返回當(dāng)前是否在填充狀態(tài)
turtle.begin_fill()
準(zhǔn)備開始填充圖形
turtle.end_fill()
填充完成
turtle.hideturtle()
隱藏畫筆的turtle形狀
turtle.showturtle()
顯示畫筆的turtle形狀
全局控制命令
turtle.clear()
清空turtle窗口,但是turtle的位置和狀態(tài)不會(huì)改變
turtle.reset()
清空窗口,重置turtle狀態(tài)為起始狀態(tài)
turtle.undo()
撤銷上一個(gè)turtle動(dòng)作
turtle.isvisible()
返回當(dāng)前turtle是否可見
stamp()
復(fù)制當(dāng)前圖形
turtle.write(s [,font=(“font-name”,font_size,“font_type”)])
寫文本,s為文本內(nèi)容,font是字體的參數(shù),分別為字體名稱,大小和類型;font為可選項(xiàng),font參數(shù)也是可選項(xiàng)
其他命令
turtle.mainloop()或turtle.done()
啟動(dòng)事件循環(huán) -調(diào)用Tkinter的mainloop函數(shù)。
必須是烏龜圖形程序中的最后一個(gè)語句。
turtle.delay(delay=None)
設(shè)置或返回以毫秒為單位的繪圖延遲。
turtle.begin_poly()
開始記錄多邊形的頂點(diǎn)。當(dāng)前的烏龜位置是多邊形的第一個(gè)頂點(diǎn)。
turtle.end_poly()
停止記錄多邊形的頂點(diǎn)。當(dāng)前的烏龜位置是多邊形的最后一個(gè)頂點(diǎn)。將與第一個(gè)頂點(diǎn)相連。
turtle.get_poly()
返回最后記錄的多邊形。
到此這篇關(guān)于Python繪圖操作之turtle庫(kù)烏龜繪圖全面整理的文章就介紹到這了,更多相關(guān)Python turtle庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python利用matplotlib繪制約數(shù)個(gè)數(shù)統(tǒng)計(jì)圖示例
這篇文章主要介紹了Python利用matplotlib繪制約數(shù)個(gè)數(shù)統(tǒng)計(jì)圖,結(jié)合實(shí)例形式詳細(xì)分析了Python使用matplotlib進(jìn)行統(tǒng)計(jì)圖繪制的相關(guān)操作技巧,需要的朋友可以參考下2019-11-11
關(guān)于SSD目標(biāo)檢測(cè)模型的人臉口罩識(shí)別
這篇文章主要介紹了關(guān)于SSD目標(biāo)檢測(cè)模型的人臉口罩識(shí)別問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
python使用pandas從minio讀取excel文件方式
從MinIO讀取Excel文件并使用Pandas處理的步驟:首先使用MinIOPythonSDK下載文件,然后使用Pandas讀取,總結(jié):安裝依賴需使用Pandas和MinIOPythonSDK2024-11-11
Linux安裝Python3如何和系統(tǒng)自帶的Python2并存
這篇文章主要介紹了Linux安裝Python3如何和系統(tǒng)自帶的Python2并存,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
PyCharm刷新項(xiàng)目(文件)目錄的實(shí)現(xiàn)
今天小編就為大家分享一篇PyCharm刷新項(xiàng)目(文件)目錄的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02
Python異常處理之避免try-except濫用的3個(gè)核心原則
在Python開發(fā)中,異常處理是保證程序健壯性的關(guān)鍵機(jī)制,本文結(jié)合真實(shí)案例與Python核心機(jī)制,提煉出避免異常濫用的三大原則,有需要的小伙伴可以了解下2025-09-09

