Python繪圖操作之turtle庫(kù)烏龜繪圖全面整理
【函數(shù)表格整理在最下方】
官方文檔網(wǎng)址
turtle
繪圖窗口
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)
【demo】
import turtle turtle.goto(100, 100) turtle.goto(100, -100) turtle.goto(-100, -100) turtle.goto(-100, 100) turtle.goto(0, 0)
海龜坐標(biāo)
turtle.fd
(d)
turtle.bk(d)
turtle.circle(r, angle)
(以海龜為中心,向左轉(zhuǎn))
角度坐標(biāo)體系
絕對(duì)角度
turtle.seth(angle)
- seth()改變海龜行進(jìn)方向
- seth()只改變方向不行進(jìn)
- angle 絕對(duì)度數(shù)
在這樣基礎(chǔ)上,繼續(xù)turtle.fd(d)
海龜角度
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()
RGB色彩體系
每色取值范圍0-255
整數(shù)或者0-1
小數(shù)。
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)
方向控制函數(shù)
只改變行進(jìn)方向,不會(huì)改變路線。
分為絕對(duì)角度和海龜角度。
turtle.setheading(angle)
別名turtle.seth(angle)
改變行進(jìn)方向,海龜走角度(改變絕對(duì)角度)
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是否可見(jiàn)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()
七段數(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()
太陽(yáng)花
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是否可見(jiàn)
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è)語(yǔ)句。
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)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。