【函式表格整理在最下方】
Turtle庫是Python語言中一個很流行的繪制影像的函式庫,想象一個小烏龜,在一個橫軸為x、縱軸為y的坐標系原點,(0,0)位置開始,它根據一組函式指令的控制,在這個平面坐標系中移動,從而在它爬行的路徑上繪制了圖形,
官方檔案網址
turtle
繪圖視窗
![\g)]](https://img.uj5u.com/2021/10/03/270115030820561.png)
turtle.setup(width, height, startx, starty)
引數:width, height: 輸入寬和高為整數時, 表示像素; 為小數時, 表示占據電腦螢屏的比例,(startx, starty): 這一坐標表示矩形視窗左上角頂點的位置, 如果為空,則視窗位于螢屏中心,
- setup設定表單大小和位置
- 4個引數中后兩個可選(默認居中)
- setup()不是必須的
turtle.screensize(canvwidth=None, canvheight=None, bg=None)
引數分別為畫布的寬(單位像素), 高, 背景顏色,
如:turtle.screensize(800,600, “green”)
? turtle.screensize() #回傳默認大小(400, 300)
空間坐標體系
絕對坐標
![[)]](https://img.uj5u.com/2021/10/03/270115030820562.png)
【demo】
import turtle
turtle.goto(100, 100)
turtle.goto(100, -100)
turtle.goto(-100, -100)
turtle.goto(-100, 100)
turtle.goto(0, 0)
![[]](https://img.uj5u.com/2021/10/03/270115030820563.png)
海龜坐標
![[)]](https://img.uj5u.com/2021/10/03/270115030820564.png)
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-HIs9TdaP-1633154999063)(C:\Users\Joy Zhang\AppData\Roaming\Typora\typora-user-images\image-20211002134938669.png)]](https://img.uj5u.com/2021/10/03/270115030820565.png)
turtle.fd(d)
turtle.bk(d)
turtle.circle(r, angle)(以海龜為中心,向左轉)
角度坐標體系
絕對角度
![]](https://img.uj5u.com/2021/10/03/270115030820566.png)
turtle.seth(angle)
- seth()改變海龜行進方向
- seth()只改變方向不行進
- angle 絕對度數
在這樣基礎上,繼續turtle.fd(d)
海龜角度
![[)]](https://img.uj5u.com/2021/10/03/270115030820567.png)
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()
![[)]](https://img.uj5u.com/2021/10/03/270115030820568.png)
RGB色彩體系
每色取值范圍0-255整數或者0-1小數,
![[]](https://img.uj5u.com/2021/10/03/270115030820569.png)
![[]](https://img.uj5u.com/2021/10/03/2701150308205610.png)
turtle庫默認采用RGB小數值,可以使用turtle.colormode(mode)可切換,
- 1.0: RGB小數值
- 255:RGB整數值
color引數的三種形式
- 顏色字串
turtle.pencolor("purple") - RGB的小數值:
turtle.pencolor(0.63, 0.13, 0.94) - RGB的元組值:
turtle.pencolor((0.63, 0.13, 0.94))
畫筆控制函式
把海龜想象成畫筆,畫筆操作后一直有效,一般成對出現,
-
turtle.penup()別名:turtle.pu()將畫筆抬起,海龜在飛行,
-
turtle.pendown()別名:turtle.pd()
落下畫筆,海龜落下,
turtle.pensize(width)別名:turtle.width(width)
畫筆寬度,海龜的腰圍,
turtle.pencolor(color)color為顏色字串 或 r,g,b值
畫筆顏色,海龜在涂裝
turtle.speed(speed),設定畫筆移動速度,畫筆繪制的速度范圍[0,10]整數,數字越大越快,turtle.fillcolor(colorstring)繪制圖形的填充顏色turtle.hideturtle()隱藏畫筆的turtle形狀turtle.showturtle()顯示畫筆的turtle形狀
運動控制函式
- 走直線:
turtle.forward(d)別名turtle.fd(d)
d的單位是像素,向前行進,海龜走直線,
d是行進距離,可以是負數,
-
turtle.backward(distance)向當前畫筆相反方向移動distance像素長度 -
走曲線:
turtle.circle(r, extent = None)
根據半徑r繪制extent角度(默認360)的弧形
圓心默認在海龜左手側,如果r是負的,圓心在海龜右側,
dot(r)繪制一個指定直徑和顏色的圓點
![[]](https://img.uj5u.com/2021/10/03/2701150308205611.png)
方向控制函式
只改變行進方向,不會改變路線,
分為絕對角度和海龜角度,
turtle.setheading(angle)別名turtle.seth(angle)
改變行進方向,海龜走角度(改變絕對角度)
![)]](https://img.uj5u.com/2021/10/03/2701150308205612.png)
turtle.left(angle)海龜向左轉turtle.right(angle)海龜向右轉
全域控制命令
-
turtle.clear()清空turtle視窗,但是turtle的位置和狀態不會改變 -
turtle.reset()清空視窗,重置turtle狀態為起始狀態 -
turtle.undo()撤銷上一個turtle動作 -
turtle.isvisible()回傳當前turtle是否可見 -
turtle.write(s [,font=("font-name",font_size,"font_type")])寫文本,s為文本內容,font是字體的引數,分別為字體名稱,大小和型別;font為可選項,font引數也是可選項
示例
蟒蛇繪制
【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()
![]](https://img.uj5u.com/2021/10/03/2701150308205613.png)
七段數碼管日期顯示
import turtle
import time
def drawGap(): # 繪制數碼管間隔
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): # 繪制單個數字
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
# 同時設定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()
庫函式表格整理
畫筆運動命令
turtle.forward(distance)
向當前畫筆方向移動distance像素長度
turtle.backward(distance)
向當前畫筆相反方向移動distance像素長度
turtle.right(degree)
順時針移動degree°
turtle.left(degree)
逆時針移動degree°
turtle.pendown()
移動時繪制圖形,預設時也為繪制
turtle.goto(x,y)
將畫筆移動到坐標為x,y的位置
turtle.penup()
提起筆移動,不繪制圖形,用于另起一個地方繪制
turtle.circle()
畫圓,半徑為正(負),表示圓心在畫筆的左邊(右邊)畫圓
setx( )
將當前x軸移動到指定位置
sety( )
將當前y軸移動到指定位置
setheading(angle)
設定當前朝向為angle角度
home()
設定當前畫筆位置為原點,朝向東,
dot?
繪制一個指定直徑和顏色的圓點
畫筆控制命令
turtle.fillcolor(colorstring)
繪制圖形的填充顏色
turtle.color(color1, color2)
同時設定pencolor=color1, fillcolor=color2
turtle.filling()
回傳當前是否在填充狀態
turtle.begin_fill()
準備開始填充圖形
turtle.end_fill()
填充完成
turtle.hideturtle()
隱藏畫筆的turtle形狀
turtle.showturtle()
顯示畫筆的turtle形狀
全域控制命令
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引數也是可選項
其他命令
turtle.mainloop()或turtle.done()
啟動事件回圈 -呼叫Tkinter的mainloop函式,
必須是烏龜圖形程式中的最后一個陳述句,
turtle.delay(delay=None)
設定或回傳以毫秒為單位的繪圖延遲,
turtle.begin_poly()
開始記錄多邊形的頂點,當前的烏龜位置是多邊形的第一個頂點,
turtle.end_poly()
停止記錄多邊形的頂點,當前的烏龜位置是多邊形的最后一個頂點,將與第一個頂點相連,
turtle.get_poly()
回傳最后記錄的多邊形,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/304942.html
標籤:python
上一篇:評論區抽獎程式
