Python được sử dụng trong đồ họa thông qua các gói như Tkinter, Canvas. Và trong bài viết này mình sẽ hướng dẫn các bạn sử dụng thư viện Turtle trên Python.
Turtle Graphics là một chương trình con có sẵn trong Python khi bạn đã cài Python lên máy bạn. Turtle [con rùa] đây chỉ là hình ảnh tưởng tượng, nó cầm cây bút để vẽ, di chuyển đến đâu là nó vẽ đường thẳng đến đó. Nó vẽ bằng những cái chấm [dots-pixels] trên màn hình.
Muốn sử dụng chương trình nhỏ turtle graphics của Python thì phải import nó vào từ “thư viện” của Python trong đó còn rất nhiều những chương trình nhỏ do Python soạn sẵn. Cần cái nào là phải nhập [gọi, call] chúng vào chương trình của mình bằng lệnh import. Ở đây ta cần gọi chương trình nhỏ turtle để vẽ nên ta dùng lệnh import turtle.
def rectangle[hor,ver,col]:
t.pendown[] #tạo con trỏ
t.pensize[1] #kích cỡ
t.color[col]
t.begin_fill[]
for counter in range[1,3]: #đây là một vòng lặp [loop]
t.forward[hor]
t.right[90]
t.forward[ver]
t.right[90]
t.end_fill[]
t.penup[]
Có bốn hướng có thể di chuyển vào:
- Ở đằng trước
- Phía sau
- Trái
- Đúng
Con trỏ di chuyển .forward[]
hoặc .backward[]
theo hướng mà nó phải đối mặt. Bạn có thể thay đổi hướng này bằng cách xoay nó .left[]
hoặc .right[]
theo một mức độ nhất định. Bạn có thể thử từng lệnh như vậy:
>>> t.right[90]
>>> t.forward[100]
>>> t.left[90]
>>> t.backward[100]
3. Thiết lập con trỏ vẽ
t.penup[]
t.speed['slow'] #Tốc độ vẽ của con trỏ
t.bgcolor['Dodger blue']
ti.sleep[10]
t.hideturtle[]
4. Code vẽ từng bộ phận
#Vẽ bàn chân
t.goto[-100,-150]
rectangle[50,20,'blue']
t.goto[-30,-150]
rectangle[50,20,'blue']
#Vẽ chân
t.goto[-25,-50]
rectangle[15,100,'grey']
t.goto[-55,-50]
rectangle[-15,100,'grey']
#Vẽ thân
t.goto[-90,100]
rectangle[100,150,'red']
#Vẽ tay
t.goto[-150,70]
rectangle[60,15,'grey']
t.goto[-150,110]
rectangle[15,40,'grey']
t.goto[10,70]
rectangle[60,15,'grey']
t.goto[55,110]
rectangle[15,40,'grey']
#Vẽ cổ
t.goto[-50,120]
rectangle[15,20,'grey']
#Vẽ đầu
t.goto[-85,170]
rectangle[80,50,'red']
t.goto[-60,160]
#Vẽ mắt miệng:
rectangle[30,10,'white']
t.goto[-60,160]
rectangle[5,5,'black']
t.goto[-45,155]
rectangle[5,5,'black']
t.goto[-65,135]
t.right[5]
rectangle[40,5,'black']
#Vẽ bàn tay:
t.goto[-155,130]
rectangle[25,25,'green']
t.goto[-147,130]
rectangle[10,15,t.bgcolor[]]
t.goto[50,130]
rectangle[25,25,'green']
t.goto[58,130]
rectangle[10,15,t.bgcolor[]]
Code đầy đủ:
import turtle as t
import time as ti
def rectangle[hor,ver,col]:
t.pendown[] #tạo con trỏ
t.pensize[1]
t.color[col]
t.begin_fill[]
for counter in range[1,3]:
t.forward[hor]
t.right[90]
t.forward[ver]
t.right[90]
t.end_fill[]
t.penup[]
t.penup[]
t.speed['slow']
t.bgcolor['Dodger blue']
t.goto[-100,-150]
rectangle[50,20,'blue']
t.goto[-30,-150]
rectangle[50,20,'blue']
t.goto[-25,-50]
rectangle[15,100,'grey']
t.goto[-55,-50]
rectangle[-15,100,'grey']
t.goto[-90,100]
rectangle[100,150,'red']
t.goto[-150,70]
rectangle[60,15,'grey']
t.goto[-150,110]
rectangle[15,40,'grey']
t.goto[10,70]
rectangle[60,15,'grey']
t.goto[55,110]
rectangle[15,40,'grey']
t.goto[-50,120]
rectangle[15,20,'grey']
t.goto[-85,170]
rectangle[80,50,'red']
t.goto[-60,160]
rectangle[30,10,'white']
t.goto[-60,160]
rectangle[5,5,'black']
t.goto[-45,155]
rectangle[5,5,'black']
t.goto[-65,135]
t.right[5]
rectangle[40,5,'black']
t.goto[-155,130]
rectangle[25,25,'green']
t.goto[-147,130]
rectangle[10,15,t.bgcolor[]]
t.goto[50,130]
rectangle[25,25,'green']
t.goto[58,130]
rectangle[10,15,t.bgcolor[]]
t.hideturtle[]
ti.sleep[10]
t.hideturtle[]
Thành quả:
- Đào tạo
- Lập trình
- Web
- FW-CMS
- Video
- Video1
- Other
- DataBase
News
Khai báo thư viện và tạo đối tượng của Turtle
Khai báo thư viện:
from turtle import *
Tạo đối tượng của Turtle
turtle = Turtle[]
Các phương thức chuyển động của rùa
turtle.
forward
[khoảng
cách] hoặc turtle.fd
[khoảng cách]
Thông số
khoảng cách - một số [số nguyên hoặc số float]
Di chuyển rùa về phía trước một khoảng cách xác định [tính bằng pixel] theo hướng rùa đang hướng tới.
Ví dụ:
>>> turtle.position[] [0.00,0.00] >>> turtle.forward[25] >>> turtle.position[] [25.00,0.00] >>> turtle.forward[-75] >>> turtle.position[] [-50.00,0.00]
turtle.
back
[khoảng cách] hoặc turtle.
bk
[khoảng
cách] hoặc turtle.
backward
[khoảng cách]
Thông số
khoảng cách - một con số
Di chuyển rùa về phía sau một khoảng cách, ngược với hướng rùa đang đi.
Ví dụ:
>>> turtle.position[] [0.00,0.00] >>> turtle.backward[30] >>> turtle.position[] [-30.00,0.00]
turtle.
right
[góc] hoặc turtle.rt
[góc]
Thông số
góc - một số [số nguyên hoặc số float]
Xoay rùa phải theo đơn vị góc . [Đơn vị theo độ mặc định, nhưng có thể được đặt qua chức năng degrees[]
và radians[]
chức năng.] Hướng góc phụ thuộc vào chế độ rùa, xem mode[]
.
>>> turtle.heading[] 22.0 >>> turtle.right[45] >>> turtle.heading[] 337.0
turtle.
left
[góc] hoặc turtle.lt
[góc]
Thông số
góc - một số [số nguyên hoặc số float]
Xoay trái rùa một góc. [Đơn vị theo độ mặc định, nhưng có thể được đặt lại bằng hàm de
grees[]
và radians[]
].
Hướng góc phụ thuộc vào chế độ rùa.
Ví dụ:
>>> turtle.heading[] 22.0 >>> turtle.left[45] >>> turtle.heading[] 67.0
turtle.
goto
[x, y = None] hoặc turtle.setpos
[x, y = None] hoặc turtle.
setposition
[x, y = None]
Thông số:
x - một số hoặc một cặp/vectơ số
y - một số hoặc None
Nếu y là None
, x phải
là một cặp tọa độ hoặc một Vec2D
[ví dụ như được trả về bởi pos[]
].
Di chuyển rùa đến một vị trí tuyệt đối. Nếu bút được xuống đặt xuống thì sẽ vẽ đường thẳng.
Ví dụ:
>>> tp = turtle.pos[] >>> tp [0.00,0.00] >>> turtle.setpos[60,30] >>> turtle.pos[] [60.00,30.00] >>> turtle.setpos[[20,80]] >>> turtle.pos[] [20.00,80.00] >>> turtle.setpos[tp] >>> turtle.pos[] [0.00,0.00]
turtle.
setx
[x]
Thông số:
x - một số [số nguyên hoặc số float]
Đặt hoành độ của rùa thành x, giữ nguyên tung độ.
Ví dụ:
>>> turtle.position[] [0.00,240.00] >>> turtle.setx[10] >>> turtle.position[] [10.00,240.00]
turtle.
sety
[y]
Thông số
y - một số [số nguyên hoặc số float]
Đặt tung độ của rùa thành y, giữ nguyên hoành độ.
Ví dụ:
>>> turtle.position[] [0.00,40.00] >>> turtle.sety[-10] >>> turtle.position[] [0.00,-10.00]
turtle.
setheading
[to_angle] hoặc turtle.seth
[to_angle]
Thông số:
to_angle - một số [số nguyên hoặc số float]
Đặt hướng của rùa thành to_angle. Dưới đây là một số hướng phổ biến theo độ:
0 - đông | 0 - bắc |
90 - bắc | 90 - đông |
180 - tây | 180 - nam |
270 - nam | 270 - tây |
Ví dụ:
>>> turtle.setheading[90] >>> turtle.heading[] 90.0
turtle.
home
[ ]
Di chuyển rùa đến điểm gốc - tọa độ [0,0] - và đặt heading của nó thành hướng bắt đầu của nó [tùy thuộc vào chế độ, xem mode[]
].
Ví dụ:
>>> turtle.heading[] 90.0 >>> turtle.position[] [0.00,-10.00] >>> turtle.home[] >>> turtle.position[] [0.00,0.00] >>> turtle.heading[] 0.0
turtle.
circle
[bán_kính, phạm_vi = None, bước = None]
Thông số:
bán_kính - một số
phạm_vi - một số [hoặc None
]
bước - một số nguyên [hoặc None
]
Vẽ một đường tròn có bán kính cho trước . Tâm là đơn vị bán kính còn lại của rùa; phạm vi - một góc - xác định phần của vòng tròn được vẽ. Nếu phạm vị là None thì sẽ vẽ toàn bộ vòng tròn. Nếu phạm vi không phải là một vòng tròn thì một điểm cuối của cung là vị trí bút hiện tại. Vẽ vòng cung theo hướng ngược chiều kim đồng hồ nếu bán kính dương, ngược lại theo chiều kim đồng hồ. Cuối cùng, hướng của rùa được thay đổi theo phạm vi.
Vì vòng tròn được xấp xỉ bởi một đa giác thông thường được ghi, nên bước sẽ xác định số bước sẽ sử dụng. Nếu không được đưa ra, nó sẽ được tính toán tự động. Có thể được sử dụng để vẽ đa giác thông thường.
Ví dụ:
>>> turtle.home[] >>> turtle.position[] [0.00,0.00] >>> turtle.heading[] 0.0 >>> turtle.circle[50] >>> turtle.position[] [-0.00,0.00] >>> turtle.heading[] 0.0 >>> turtle.circle[120, 180] # draw a semicircle >>> turtle.position[] [0.00,240.00] >>> turtle.heading[] 180.0
turtle.
dot
[kích_thước = None, "color"]
Thông số:
kích_thước - một số nguyên >= 1 hoặc None
color - một chuỗi màu hoặc một bộ màu số
Vẽ một chấm tròn có đường kính là kích_thước, có màu là color. Nếu kích_thước không được đưa ra thì các giá trị penize+4 và 2*penize được sử dụng.
Ví dụ:
>>> turtle.home[] >>> turtle.dot[] >>> turtle.fd[50]; turtle.dot[20, "blue"]; turtle.fd[50] >>> turtle.position[] [100.00,-0.00] >>> turtle.heading[] 0.0
turtle.
stamp
[ ]
Đóng dấu một bản sao của hình dạng rùa lên khung vẽ ở vị trí rùa hiện tại. Trả lại tem_id cho tem đó, có thể được sử dụng để xóa nó bằng cách gọi clearstamp[stamp_id]
.
Ví dụ:
>>> turtle.color["blue"] >>> turtle.stamp[] 11 >>> turtle.fd[50]
turtle.
clearstamp
[stampid]
Thông số
stampid - một số nguyên, phải là giá trị trả về của hàm stamp[]
.
Xóa stamp với stampid đã cho.
Ví dụ:
>>> turtle.position[] [150.00,-0.00] >>> turtle.color["blue"] >>> astamp = turtle.stamp[] >>> turtle.fd[50] >>> turtle.position[] [200.00,-0.00] >>> turtle.clearstamp[astamp] >>> turtle.position[] [200.00,-0.00]
turtle.
clearstamps
[n = None]
Thông số
n - một số nguyên [hoặc None
]
Xóa tất cả hoặc n stamp đầu hoặc cuối của turtle. Nếu n là None
, xóa tất cả các stamp, nếu n > 0
xóa n stamp đầu tiên, nếu n >> for i in range[8]:
... turtle.stamp[]; turtle.fd[30]
13
14
15
16
17
18
19
20
>>> turtle.clearstamps[2]
>>> turtle.clearstamps[-2]
>>> turtle.clearstamps[]
turtle.
undo
[ ]
Hoàn tác [lặp đi lặp lại] những hành động cuối của turtle. Số lượng các hành động hoàn tác có sẵn được xác định bởi kích thước của undobuffer.
Ví dụ:
>>> for i in range[4]: ... turtle.fd[50]; turtle.lt[80] ... >>> for i in range[8]: ... turtle.undo[]
turtle.
speed
[tốc độ = None]
Thông số
tốc độ - một số nguyên trong phạm vi 0..10 hoặc chuỗi tốc độ [xem bên dưới]
Đặt tốc độ của rùa thành giá trị nguyên trong phạm vi 0..10. Nếu không có đối số được đưa ra, trả về tốc độ hiện tại.
Nếu đầu vào là một số lớn hơn 10 hoặc nhỏ hơn 0.5 thì tốc độ được đặt thành 0. Tốc độ được ánh xạ tới các giá trị tốc độ như sau:
“fastest”: 0
“fast”: 10
“normal”: 6
“slow”: 3
“slowest”: 1
Tốc độ từ 1 đến 10 thực thi hoạt hình ngày càng nhanh hơn khi vẽ đường thẳng và quay rùa.
Chú ý: tốc độ = 0 có nghĩa là không có hoạt hình diễn ra. forward/backward làm cho rùa nhảy và tương tự left/right làm cho rùa quay ngay lập tức.
Ví dụ:
>>> turtle.speed[] 3 >>> turtle.speed['normal'] >>> turtle.speed[] 6 >>> turtle.speed[9] >>> turtle.speed[] 9
Làm việc với vị trí của rùa
turtle.
position
[ ] hoặc turtle.pos
[ ]
Trả về vị trí hiện tại của rùa [x, y] [dưới dạng vector Vec2D
].
Ví dụ:
>>> turtle.pos[]
[440.00,-0.00]
turtle.
towards
[x, y = None]
Thông số:
x - một số hoặc một cặp / vectơ số hoặc một thể hiện rùa
y - một số nếu x là một số, khácNone
Trả lại góc giữa đường từ vị trí rùa đến vị trí được chỉ định bởi [x, y], vectơ hoặc rùa khác. Điều này phụ thuộc vào hướng bắt đầu của rùa và nó phụ thuộc vào chế độ "standard"/"world" hay "logo".
Ví dụ:
>>> turtle.goto[10, 10] >>> turtle.towards[0,0] 225.0
turtle.
xcor
[ ]
Trả lại tọa độ x của rùa.
Ví dụ:
>>> turtle.home[] >>> turtle.left[50] >>> turtle.forward[100] >>> turtle.pos[] [64.28,76.60] >>> print[round[turtle.xcor[], 5]] 64.27876
turtle.
ycor
[ ]
Trả lại tọa độ y của rùa.
Ví dụ:
>>> turtle.home[] >>> turtle.left[60] >>> turtle.forward[100] >>> print[turtle.pos[]] [50.00,86.60] >>> print[round[turtle.ycor[], 5]] 86.60254
turtle.
heading
[ ]
Trả về
heading hiện tại của rùa [giá trị phụ thuộc vào chế độ rùa, xem mode[]
].
Ví dụ:
>>> turtle.home[] >>> turtle.left[67] >>> turtle.heading[] 67.0
turtle.
distance
[x, y = None]
Thông số
x - là một số, một cặp số pair/vector hoặc một đối tượng rùa
y - một số nếu x là một số, ngược lại thì sẽ là None
Trả lại khoảng cách từ rùa đến [x, y], vectơ đã cho hoặc đối tượng rùa khác đã cho, theo đơn vị bước rùa.
Ví dụ:
>>> turtle.home[] >>> turtle.distance[30,40] 50.0 >>> turtle.distance[[30,40]] 50.0 >>> joe = Turtle[] >>> joe.forward[77] >>> turtle.distance[joe] 77.0
Cài đặt đơn vị đo
turtle.
degrees
[fullcircle = 360.0]
Thông số
fullcircle - một số
Đặt đơn vị đo góc, tức là đặt giá trị degrees là một vòng tròn. Giá trị mặc định là 360 độ.
Ví dụ:
>>> turtle.home[] >>> turtle.left[90] >>> turtle.heading[] 90.0 Thay đổi đơn vị đo góc thành grad [còn được gọi là gon, grade, hoặc gradian và được tính bằng 1/100-th của góc phải] >>> turtle.degrees[400.0] >>> turtle.heading[] 100.0 >>> turtle.degrees[360] >>> turtle.heading[] 90.0
turtle.
radians
[ ]
Đặt đơn vị đo góc thành radian, tương đương với degrees[2*math.pi]
.
Ví dụ:
>>> turtle.home[] >>> turtle.left[90] >>> turtle.heading[] 90.0 >>> turtle.radians[] >>> turtle.heading[] 1.5707963267948966
Bút vẽ
Các phương thức vẽ
turtle.
pendown
[ ] hoặc turtle.pd
[ ] hoặc turtle.down
[ ]
Đặt bút xuống để vẽ.
turtle.
penup
[ ] hoặc turtle.pu
[ ]
hoặc turtle.up
[ ]
Nhấc bút lên để dừng vẽ.
turtle.
pensize
[width = None] hoặc turtle.width
[width = None ]
Tham số
width - một số dương
width dùng để thiết lập độ dày của nét vẽ thành width. Nếu resizemode được đặt thành "auto" và turtleshape là một đa giác, thì đa giác đó được vẽ với cùng độ dày nét vẽ. Nếu không có đối số được đưa ra thì sẽ trả về pensize hiện tại.
Ví dụ:
>>> turtle.pensize[] 1 >>> turtle.pensize[10] # từ lúc này thì độ dày nét vẽ sẽ là 10
turtle.
pen
[pen = None, **pendict]
Tham số
pen - một từ điển với một số hoặc tất cả các từ khóa được liệt kê ở phía dưới đây
pendict - một hoặc nhiều đối số từ khóa với các khóa được liệt kê bên dưới đây làm từ khóa
Trả về hoặc đặt các thuộc tính của bút thành "pen-dictionary" với các cặp khóa/giá trị sau:
- “shown”: True/False
- “pendown”: True/False
- “pencolor”: color-string hoặc color-tuple
- “fillcolor”: color-string hoặc color-tuple
- “pensize”: số dượng
- “speed”: số trong khoảng 0..10
- “resizemode”: “auto” hoặc “user” hoặc “noresize”
- “stretchfactor”: [số dượng, số dương]
- “outline”: số dương
- “tilt”: số
Từ điển này có thể được sử dụng làm đối số cho lời gọi tới pen[]
để khôi phục trạng thái bút cũ. Hơn nữa, một hoặc nhiều thuộc tính này có thể được cung cấp dưới dạng đối số từ khóa. Điều này có thể được sử dụng để đặt một số thuộc tính bút trong một câu lệnh.
Ví dụ:
>>> turtle.pen[fillcolor="black", pencolor="red", pensize=10] >>> sorted[turtle.pen[].items[]] [['fillcolor', 'black'], ['outline', 1], ['pencolor', 'red'], ['pendown', True], ['pensize', 10], ['resizemode', 'noresize'], ['shearfactor', 0.0], ['shown', True], ['speed', 9], ['stretchfactor', [1.0, 1.0]], ['tilt', 0.0]] >>> penstate=turtle.pen[] >>> turtle.color["yellow", ""] >>> turtle.penup[] >>> sorted[turtle.pen[].items[]][:3] [['fillcolor', ''], ['outline', 1], ['pencolor', 'yellow']] >>> turtle.pen[penstate, fillcolor="green"] >>> sorted[turtle.pen[].items[]][:3] [['fillcolor', 'green'], ['outline', 1], ['pencolor', 'red']]
turtle.
isdown
[ ]
Trả lại True
nếu bút được đặt, False
nếu ngược lại.
Ví dụ:
>>> turtle.penup[] >>> turtle.isdown[] False >>> turtle.pendown[] >>> turtle.isdown[] True
Chỉnh màu cho bút
turtle.
pencolor
[*args]
Trả về hoặc thiết lập pencolor.
Bốn định dạng đầu vào được cho phép:
pencolor[]
Trả về pencolor hiện tại dưới dạng chuỗi đặc tả màu hoặc dưới dạng tuple [xem ví dụ ở dưới]. Có thể được sử dụng làm đầu vào cho lời gọi color/pencolor/fillcolor khác.
pencolor[colorstring]
Đặt pencolor thành colorstring, nó là một chuỗi đặc tả màu Tk, chẳng hạn như "red"
, "yellow"
hoặc "#33cc8c"
.
pencolor[[r, g, b]]
Đặt pencolor thành màu RGB được biểu thị bằng tuple của r , g và b. Mỗi r , g và b phải
nằm trong phạm vi 0..colormode, trong đó colormode là một trong các số từ 1.0 đến 255 [xem colormode[]
].
pencolor[r, g, b]
Đặt pencolor thành màu RGB được biểu thị bởi r , g và b. Mỗi r , g và b phải nằm trong phạm vi 0..colormode.
Nếu turtleshape là một đa giác thì đường viền của đa giác đó được vẽ bằng pencolor mới được đặt.
Ví dụ:
>>> colormode[] 1.0 >>> turtle.pencolor[] 'red' >>> turtle.pencolor["brown"] >>> turtle.pencolor[] 'brown' >>> tup = [0.2, 0.8, 0.55] >>> turtle.pencolor[tup] >>> turtle.pencolor[] [0.2, 0.8, 0.5490196078431373] >>> colormode[255] >>> turtle.pencolor[] [51.0, 204.0, 140.0] >>> turtle.pencolor['#32c18f'] >>> turtle.pencolor[] [50.0, 193.0, 143.0]
turtle.
fillcolor
[*args]
Trả về hoặc thiết lập fillcolor.
Bốn định dạng đầu vào được cho phép:
fillcolor[]
Trả về fillcolor hiện tại dưới dạng chuỗi đặc tả màu, có thể ở định dạng tuple [xem ví dụ]. Có thể được sử dụng làm đầu vào cho lời gọi color/pencolor/fillcolor khác.
fillcolor[colorstring]
Set fillcolor để colorstring , mà là một đặc điểm kỹ thuật Tk màu chuỗi, chẳng hạn
như "red"
, "yellow"
hoặc "#33cc8c"
.
fillcolor[[r, g, b]]
Đặt màu tô thành màu RGB được biểu thị bằng tuple của r , g và b . Mỗi r , g và b phải nằm trong phạm vi 0..colormode, trong đó colormode là 1.0 hoặc 255 [xem colormode[]
].
fillcolor[r, g, b]
Đặt màu tô thành màu RGB được biểu thị bởi r , g và b . Mỗi r , g và b phải nằm trong phạm vi 0..colormode.
Nếu turt Meatape là một đa giác, phần bên trong của đa giác đó được vẽ bằng fillcolor mới được thiết lập.
>>> turtle.fillcolor["violet"] >>> turtle.fillcolor[] 'violet' >>> turtle.pencolor[] [50.0, 193.0, 143.0] >>> turtle.fillcolor[[50, 193, 143]] # Integers, not floats >>> turtle.fillcolor[] [50.0, 193.0, 143.0] >>> turtle.fillcolor['#ffffff'] >>> turtle.fillcolor[] [255.0, 255.0, 255.0]
turtle.
color
[*args]
Trả lại hoặc đặt pencolor và fillcolor.
Một số định dạng đầu vào được cho phép. Họ sử dụng 0 đến 3 đối số như sau:
color[]
Trả về pencolor hiện tại và fillcolor hiện tại dưới dạng một cặp chuỗi đặc tả màu hoặc bộ dữ liệu được trả về bởi pencolor[]
và fillcolor[]
.
color[colorstring]
, color[[r,g,b]]
,color[r,g,b]
Các đầu vào như trong pencolor[]
, đặt cả hai, fillcolor và pencolor, thành giá trị đã cho.
color[colorstring1, colorstring2]
, color[[r1,g1,b1], [r2,g2,b2]]
Tương đương
pencolor[colorstring1]
vàfillcolor[colorstring2]
và tương tự nếu định dạng đầu vào khác được sử dụng.
Nếu turt Meatape là một đa giác, phác thảo và bên trong của đa giác đó được vẽ bằng các màu mới được thiết lập.
>>> turtle.color["red", "green"] >>> turtle.color[] ['red', 'green'] >>> color["#285078", "#a0c8f0"] >>> color[] [[40.0, 80.0, 120.0], [160.0, 200.0, 240.0]]
Xem thêm: Phương pháp màn hình colormode[]
.
điền
turtle.
filling
[ ]
Trả lại fillstate [ True
nếu điền, False
khác].
>>> turtle.begin_fill[] >>> if turtle.filling[]: ... turtle.pensize[5] ... else: ... turtle.pensize[3]
turtle.
begin_fill
[ ]
Để được gọi ngay trước khi vẽ một hình dạng được điền.
turtle.
end_fill
[ ]
Điền vào hình được vẽ sau cuộc gọi cuối cùng begin_fill[]
.
Việc các vùng chồng lấp cho đa giác tự giao nhau hay nhiều hình được lấp đầy hay không phụ thuộc vào đồ họa của hệ điều hành, loại chồng lấp và số lượng chồng lấp. Ví dụ, ngôi sao Rùa ở trên có thể có màu vàng hoặc có một số vùng màu trắng.
>>> turtle.color["black", "red"] >>> turtle.begin_fill[] >>> turtle.circle[80] >>> turtle.end_fill[]
More vẽ kiểm soát
turtle.
reset
[ ]
Xóa bản vẽ của rùa khỏi màn hình, căn giữa lại rùa và đặt các biến thành giá trị mặc định.
>>> turtle.goto[0,-22] >>> turtle.left[100] >>> turtle.position[] [0.00,-22.00] >>> turtle.heading[] 100.0 >>> turtle.reset[] >>> turtle.position[] [0.00,0.00] >>> turtle.heading[] 0.0
turtle.
clear
[ ]
Xóa bản vẽ của rùa khỏi màn hình. Đừng di chuyển rùa. Trạng thái và vị trí của rùa cũng như bản vẽ của các loài rùa khác không bị ảnh hưởng.
turtle.
write
[ Arg , di
chuyển = False , align = "left" , font = [ "Arial" , 8 , "bình thường"] ]
Thông số
arg - đối tượng được ghi vào TurtleScreen
di chuyển - Đúng / Sai
căn chỉnh - một trong các chuỗi bên trái, trung tâm trực tiếp hoặc bên phải
phông chữ - một bộ ba [fontname, fontize, fonttype]
Viết văn bản - biểu diễn chuỗi của arg - tại vị trí rùa hiện tại theo sự sắp xếp [bên trái, một trung tâm trực tiếp hoặc trung tâm phải] và với phông chữ đã cho. Nếu di chuyển là đúng, bút được di chuyển đến góc dưới bên phải của văn bản. Theo mặc định, di chuyển là False
.
>>>
>>> turtle.write["Home = ", True, align="center"] >>> turtle.write[[0,0], True]
Trạng thái rùa
Tầm nhìn
turtle.
hideturtle
[ ]
turtle.
ht
[ ]
Làm cho rùa vô hình. Đó là một ý tưởng tốt để làm điều này trong khi bạn đang thực hiện một số bản vẽ phức tạp, bởi vì ẩn con rùa tăng tốc bản vẽ một cách quan sát.
turtle.
showturtle
[ ]
turtle.
st
[ ]
Làm cho rùa nhìn thấy.
turtle.
isvisible
[ ]
Quay trở lại True
nếu Rùa được hiển thị, False
nếu nó bị ẩn.
>>>
>>> turtle.hideturtle[] >>> turtle.isvisible[] False >>> turtle.showturtle[] >>> turtle.isvisible[] True
Bề ngoài
turtle.
shape
[ Name = Không ]
Thông số
Tên - một chuỗi là một shapename hợp lệ
Đặt hình dạng rùa thành hình dạng với tên
đã cho hoặc, nếu tên không được đưa ra, trả về tên của hình dạng hiện tại. Hình dạng với tên phải tồn tại trong từ điển hình dạng của TurtleScreen. Ban đầu có các hình đa giác sau: Mũi tên mũi nhọn, Rùa rùa, Vòng tròn hình chữ nhật, hình vuông góc, hình tam giác, hình chữ nhật cổ điển. Để tìm hiểu về cách xử lý hình dạng, xem Phương pháp màn hình register_shape[]
.
>>> turtle.shape[] 'classic' >>> turtle.shape["turtle"] >>> turtle.shape[] 'turtle'
turtle.
resizemode
[ Rmode = Không ]
Thông số
rmode - một trong những chuỗi Tự động,
Đặt resizemode thành một trong các giá trị: Tự động hóa trực tiếp, người dùng trực tiếp, người dùng trực tuyến. Nếu rmode không được đưa ra, hãy trả lại mã nguồn hiện tại. Các resizemode khác nhau có tác dụng sau:
Tự động tự động: thích nghi sự xuất hiện của rùa tương ứng với giá trị của penize.
Người dùng trên mạng: điều chỉnh sự xuất hiện của rùa theo các giá trị của bộ lọc và độ rộng đường viền [đường viền], được đặt theo
shapesize[]
.Noresize nọize: không có sự thích nghi nào về sự xuất hiện của rùa.
resizemode [người dùng trên mạng] được gọi bởi shapesize[]
khi được sử dụng với các đối số.
>>> turtle.resizemode[] 'noresize' >>> turtle.resizemode["auto"] >>> turtle.resizemode[] 'auto'
turtle.
shapesize
[ Stretch_wid = None , stretch_len = None , phác thảo = Không ]
turtle.
turtlesize
[ Stretch_wid
= None , stretch_len = None , phác thảo = Không ]
Thông số
Stretch_wid - số dương
Stretch_len - số dương
phác thảo - số dương
Trả lại hoặc đặt thuộc tính x / y-Stretchfactors của bút và / hoặc phác thảo. Đặt resizemode thành người dùng trên mạng. Nếu và chỉ khi resizemode được đặt thành người dùng, thì con rùa sẽ được hiển thị kéo dài theo các bộ phận kéo dài của nó: Stretch_wid là bộ căng thẳng vuông góc với hướng của nó, Stretch_len là bộ căng theo hướng của nó, đường viền xác định chiều rộng của đường viền của hình dạng.
>>> turtle.shapesize[] [1.0, 1.0, 1] >>> turtle.resizemode["user"] >>> turtle.shapesize[5, 5, 12] >>> turtle.shapesize[] [5, 5, 12] >>> turtle.shapesize[outline=8] >>> turtle.shapesize[] [5, 5, 8]
turtle.
shearfactor
[ Cắt = Không ]
Thông số
cắt - số [tùy chọn]
Đặt hoặc trả về shearfactor hiện tại. Cắt thịt rùa theo cắt shearfactor đã cho, đó là tiếp tuyến của góc cắt. Đừng không thay đổi tiêu đề của rùa [hướng chuyển động]. Nếu cắt không được đưa ra: trả về máy cắt hiện tại, tức là tiếp tuyến của góc cắt, theo đó các đường thẳng song song với tiêu đề của rùa bị cắt.
>>> turtle.shape["circle"] >>> turtle.shapesize[5,2] >>> turtle.shearfactor[0.5] >>> turtle.shearfactor[] 0.5
turtle.
tilt
[ Góc ]
Thông số
góc - một số
Xoay thịt rùa theo góc từ góc nghiêng hiện tại của nó, nhưng không thay đổi hướng của rùa [hướng di chuyển].
>>> turtle.reset[] >>> turtle.shape["circle"] >>> turtle.shapesize[5,2] >>> turtle.tilt[30] >>> turtle.fd[50] >>> turtle.tilt[30] >>> turtle.fd[50]
turtle.
settiltangle
[ Góc ]
Thông số
góc - một số
Xoay turt Meatape để chỉ theo hướng được chỉ định bởi góc , bất kể góc nghiêng hiện tại của nó. Không thay đổi tiêu đề của rùa [hướng di chuyển].
>>> turtle.reset[] >>> turtle.shape["circle"] >>> turtle.shapesize[5,2] >>> turtle.settiltangle[45] >>> turtle.fd[50] >>> turtle.settiltangle[-45] >>> turtle.fd[50]
Không dùng nữa kể từ phiên bản 3.1.
turtle.
tiltangle
[ Góc = Không ]
Thông số
góc - một số [tùy chọn]
Đặt hoặc trả về góc nghiêng hiện tại. Nếu góc được đưa ra, xoay vòng xoay để chỉ theo hướng được chỉ định bởi góc, bất kể góc nghiêng hiện tại của nó. Đừng không thay đổi tiêu đề của rùa [hướng chuyển động]. Nếu góc không được đưa ra: trả về góc nghiêng hiện tại, nghĩa là góc giữa hướng của rùa và tiêu đề của rùa [hướng di chuyển của nó].
>>> turtle.reset[] >>> turtle.shape["circle"] >>> turtle.shapesize[5,2] >>> turtle.tilt[45] >>> turtle.tiltangle[] 45.0
turtle.
shapetransform
[ T11 = Không , t12 = Không , T21 = Không , T22 = Không ]
Thông số
t11 - một số [tùy chọn]
t12 - một số [tùy chọn]
-
t21 - một số [tùy chọn]
t12 - một số [tùy chọn]
Đặt hoặc trả về ma trận biến đổi hiện tại của hình dạng rùa.
Nếu không có phần tử ma trận nào được đưa ra, hãy trả về ma trận biến đổi dưới dạng một bộ gồm 4 phần tử. Mặt khác, đặt các phần tử đã cho và biến đổi turt Meatape theo ma trận bao gồm hàng đầu tiên t11, t12 và hàng thứ hai t21, 22. Số xác định t11 * t22 - t12 * t21 không được bằng 0, nếu không sẽ xảy ra lỗi. Sửa đổi Stretchfactor, shearfactor và tiltangle theo ma trận đã cho.
>>> turtle = Turtle[] >>> turtle.shape["square"] >>> turtle.shapesize[4,2] >>> turtle.shearfactor[-0.5] >>> turtle.shapetransform[] [4.0, -1.0, -0.0, 2.0]
turtle.
get_shapepoly
[ ]
Trả về đa giác hình dạng hiện tại dưới dạng tuple của các cặp tọa độ. Điều này có thể được sử dụng để xác định một hình dạng mới hoặc các thành phần của hình dạng ghép.
>>> turtle.shape["square"] >>> turtle.shapetransform[4, -1, 0, 2] >>> turtle.get_shapepoly[] [[50, -20], [30, 20], [-50, 20], [-30, -20]]
Sử dụng sự kiện
turtle.
title
[ Vui
vẻ , btn = 1 , thêm = Không ]
Thông số
vui vẻ - một hàm có hai đối số sẽ được gọi với tọa độ của điểm được nhấp trên khung vẽ
btn - số nút chuột, mặc định là 1 [nút chuột trái]
thêm -
True
hoặcFalse
- nếuTrue
, một ràng buộc mới sẽ được thêm vào, nếu không nó sẽ thay thế một ràng buộc cũ
Liên kết thú vị với các sự kiện nhấp chuột trên con rùa này. Nếu vui là None
, các ràng buộc hiện có được loại bỏ. Ví dụ cho rùa ẩn danh, tức là cách thức thủ tục:
>>> def turn[x, y]: ... left[180] ... >>> title[turn] # Now clicking into the turtle will turn it. >>> title[None] # event-binding will be removed
turtle.
onrelease
[ Vui vẻ , btn = 1 , thêm = Không ]
Thông số
vui vẻ - một hàm có hai đối số sẽ được gọi với tọa độ của điểm được nhấp trên khung vẽ
btn - số nút chuột, mặc định là 1 [nút chuột trái]
thêm -
True
hoặcFalse
- nếuTrue
, một ràng buộc mới sẽ được thêm vào, nếu không nó sẽ thay thế một ràng buộc cũ
Liên kết thú vị với các sự kiện phát hành nút chuột trên con rùa này. Nếu vui là None
, các ràng buộc hiện có được loại bỏ.
>>> class MyTurtle[Turtle]: ... def glow[self,x,y]: ... self.fillcolor["red"] ... def unglow[self,x,y]: ... self.fillcolor[""] ... >>> turtle = MyTurtle[] >>> turtle. title[turtle.glow] # clicking on turtle turns fillcolor red, >>> turtle.onrelease[turtle.unglow] # releasing turns it to transparent.
turtle.
ondrag
[ Vui vẻ , btn = 1 , thêm = Không ]
Thông số
vui vẻ - một hàm có hai đối số sẽ được gọi với tọa độ của điểm được nhấp trên khung vẽ
btn - số nút chuột, mặc định là 1 [nút chuột trái]
thêm -
True
hoặcFalse
- nếuTrue
, một ràng buộc mới sẽ được thêm vào, nếu không nó sẽ thay thế một ràng buộc cũ
Liên kết thú vị với các sự kiện di chuyển chuột trên con rùa này. Nếu vui là None
, các ràng buộc hiện có được loại bỏ.
Ghi chú: Mọi chuỗi sự kiện di chuyển chuột trên một con rùa đều được bắt đầu bằng một sự kiện nhấp chuột trên con rùa đó.
>>> turtle.ondrag[turtle.goto]
Sau đó, nhấp và kéo Rùa sẽ di chuyển nó trên màn hình do đó tạo ra các thao tác rút tiền [nếu bút bị hỏng].
Phương pháp đặc biệt Rùa
turtle.
begin_poly
[ ]
Bắt đầu ghi lại các đỉnh của một đa giác. Vị trí rùa hiện tại là đỉnh đầu tiên của đa giác.
turtle.
end_poly
[ ]
Dừng ghi lại các đỉnh của một đa giác. Vị trí rùa hiện tại là đỉnh cuối cùng của đa giác. Điều này sẽ được kết nối với đỉnh đầu tiên.
turtle.
get_poly
[ ]
Trả về đa giác được ghi cuối cùng.
>>> 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[] >>> register_shape["myFavouriteShape", p]
turtle.
clone
[ ]
Tạo và trả lại một bản sao của rùa với cùng thuộc tính, tiêu đề và thuộc tính rùa.
>>> mick = Turtle[] >>> joe = mick.clone[]
turtle.
getturtle
[ ]
turtle.
getpen
[ ]
Trả lại đối tượng Rùa. Chỉ sử dụng hợp lý: như một chức năng để trả lại rùa ẩn danh
>>> pet = getturtle[] >>> pet.fd[50] >>> pet
turtle.
getscreen
[ ]
Trả lại TurtleScreen
đối tượng con rùa đang vẽ. Phương thức TurtleScreen sau đó có thể được gọi cho đối tượng đó.
>>> ts = turtle.getscreen[] >>> ts >>> ts.bgcolor["pink"]
turtle.
setundobuffer
[ Kích thước ]
Thông số
kích thước - một số nguyên hoặcNone
Đặt hoặc vô hiệu hóa undobuffer. Nếu kích thước là một số nguyên, một undobuffer trống có kích thước đã cho sẽ được cài đặt. kích thước cho số lượng hành động rùa tối đa có thể được hoàn tác bằng undo[]
phương thức / chức năng. Nếu kích
thước là None
, undobuffer bị vô hiệu hóa.
>>> turtle.setundobuffer[42]
turtle.
undobufferentries
[ ]
Trả về số lượng mục trong undobuffer.
>>> while undobufferentries[]: ... undo[]
Hình dạng hợp chất
Để sử dụng hình dạng rùa hỗn hợp, bao gồm một số đa giác có màu khác nhau, bạn phải sử dụng lớp người trợ giúp Shape
một cách rõ ràng như được mô tả dưới đây:
Tạo một đối tượng Hình dạng trống của loại hình ghép.
Thêm nhiều thành phần vào đối tượng này như mong muốn, sử dụng
addcomponent[]
phương thức.Ví dụ:
>>> s = Shape["compound"] >>> poly1 = [[0,0],[10,-5],[0,10],[-10,-5]] >>> s.addcomponent[poly1, "red", "blue"] >>> poly2 = [[0,0],[10,-5],[-10,-5]] >>> s.addcomponent[poly2, "blue", "red"]
Bây giờ hãy thêm Shape vào shapelist của Screen và sử dụng nó:
>>> register_shape["myshape", s] >>> shape["myshape"]
Ghi chú
Các Shape
lớp học được sử dụng trong nội bộ của các register_shape[]
phương pháp theo những cách khác nhau. Lập trình viên ứng dụng có để đối phó với các lớp Shape chỉ khi sử dụng hình dạng hợp chất như trình bày ở trên!
Phương pháp TurtleScreen / Màn hình và chức năng tương ứng
Hầu hết các ví dụ trong phần này đề cập đến một ví dụ TurtleScreen được gọi screen
.
Kiểm soát cửa sổ
turtle.
bgcolor
[ Luận điểm * ]
Thông số
args - một chuỗi màu hoặc ba số trong phạm vi 0..colormode hoặc 3-tuple của các số đó
Đặt hoặc trả lại màu nền của TurtleScreen.
>>> screen.bgcolor["orange"] >>> screen.bgcolor[] 'orange' >>> screen.bgcolor["#800080"] >>> screen.bgcolor[] [128.0, 0.0, 128.0]
turtle.
bgpic
[ Picname = Không ]
Thông số
picname - một chuỗi, tên của tệp gif hoặc "nopic"
, hoặcNone
Đặt hình nền hoặc tên trả về của hình nền hiện tại. Nếu picname là tên tệp, hãy đặt hình ảnh tương ứng làm nền. Nếu picname là "nopic"
,
xóa hình nền, nếu có. Nếu picname là None
, trả lại tên tệp của hình nền hiện tại.
>>>
>>> screen.bgpic[] 'nopic' >>> screen.bgpic["landscape.gif"] >>> screen.bgpic[] "landscape.gif"
turtle.
clear
[ ]
turtle.
clearscreen
[ ]
Xóa tất cả các bản vẽ và tất cả các con rùa khỏi TurtleScreen. Đặt lại TurtleScreen hiện tại trống về trạng thái ban đầu: nền trắng, không có hình nền, không ràng buộc sự kiện và theo dõi.
Ghi chú
Phương thức TurtleScreen này có sẵn dưới dạng hàm toàn cục chỉ dưới tên clearscreen
. Hàm toàn cục clear
là một hàm khác có nguồn gốc từ phương pháp Rùa clear
.
turtle.
reset
[ ]
turtle.
resetscreen
[ ]
Đặt lại tất cả Rùa trên Màn hình về trạng thái ban đầu.
Ghi chú
Phương thức TurtleScreen này có sẵn dưới dạng hàm toàn cục chỉ dưới tên resetscreen
. Hàm
toàn cục reset
là một hàm khác bắt nguồn từ phương thức Rùa reset
.
turtle.
screensize
[ Canvwidth = None , canvheight = None , bg = Không ]
Thông số
canvference - số nguyên dương, chiều rộng mới của canvas theo pixel
canvheight - số nguyên dương, chiều cao mới của khung hình bằng pixel
bg - chuỗi màu hoặc tuple màu, màu nền mới
Nếu không có đối số nào được đưa ra, hãy trả về dòng điện [canvas, canvasheight]. Khác thay đổi kích thước vải mà rùa đang vẽ. Không thay đổi cửa sổ bản vẽ. Để quan sát các phần ẩn của khung vẽ, sử dụng thanh cuộn. Với phương pháp này, người ta có thể nhìn thấy những phần của bản vẽ bên ngoài khung vẽ trước đó.
>>>
>>> screen.screensize[] [400, 300] >>> screen.screensize[2000,1500] >>> screen.screensize[] [2000, 1500]
ví dụ: để tìm kiếm một con rùa trốn thoát sai lầm ;-]
turtle.
setworldcoordinates
[ llx , lly , urx , ury ]
Thông số
llx - một số, tọa độ x của góc dưới bên trái của khung vẽ
lly - một số, tọa độ y của góc dưới bên trái của khung vẽ
urx - một số, tọa độ x của góc trên bên phải của khung vẽ
ury - một số, tọa độ y của góc trên bên phải của khung vẽ
Thiết lập hệ tọa độ do người dùng xác định và chuyển sang chế độ Thế giới trực tiếp nếu cần. Điều này thực hiện a screen.reset[]
. Nếu chế độ, thế giới, thế giới đã được kích hoạt, tất cả các bản vẽ được vẽ lại theo tọa độ mới.
CHÚ Ý : trong các góc hệ thống tọa độ do người dùng xác định có thể bị méo.
>>> screen.reset[] >>> screen.setworldcoordinates[-50,-7.5,50,7.5] >>> for _ in range[72]: ... left[10] ... >>> for _ in range[8]: ... left[45]; fd[2] # a regular octagon
Kiểm soát hoạt hình
turtle.
delay
[ chậm trễ = Không có ]
Thông số
độ trễ - số nguyên dương
Đặt hoặc trả về độ trễ bản vẽ tính bằng mili giây. [Đây là khoảng thời gian giữa hai lần cập nhật canvas liên tiếp.] Thời gian trì hoãn vẽ càng lâu, hoạt ảnh càng chậm.
Đối số tùy chọn:
>>> screen.delay[] 10 >>> screen.delay[5] >>> screen.delay[] 5
turtle.
tracer
[ n = Không , trì
hoãn = Không ]
Thông số
n - số nguyên không âm
độ trễ - số nguyên không âm
Bật / tắt hoạt hình rùa và đặt độ trễ cho bản vẽ cập nhật. Nếu n được đưa ra, chỉ có mỗi cập nhật màn hình thông thường thứ n thực sự được thực hiện. [Có thể được sử dụng để tăng tốc bản vẽ đồ họa phức tạp.] Khi được gọi mà không có đối số, trả về giá trị hiện
được lưu trữ của n. Đối số thứ hai đặt giá trị độ trễ [xem delay[]
].
>>> screen.tracer[8, 25] >>> dist = 2 >>> for i in range[200]: ... fd[dist] ... rt[90] ... dist += 2
turtle.
update
[]
Thực hiện cập nhật TurtleScreen. Được sử dụng khi tắt tracer.
Xem thêm phương pháp RawTurtle / Rùa speed[]
.
Sử dụng các sự kiện màn hình
turtle.
listen
[ xdummy = Không , ydummy = Không ]
Đặt tiêu điểm vào TurtleScreen [để thu thập các sự kiện chính]. Đối số giả được cung cấp để có thể chuyển listen[]
sang phương thức title.
turtle.
onkey
[ Vui vẻ , chìa khóa ]
turtle.
onkeyrelease
[ Vui vẻ , chìa khóa ]
Thông số
vui vẻ - một chức năng không có đối số hoặc
None
key - một chuỗi: key [vd: một người khác] hoặc biểu tượng khóa [ví dụ:
Liên kết thú vị với sự kiện phát hành khóa của khóa. Nếu vui là None
, các ràng buộc sự kiện được gỡ bỏ. Lưu ý: để có thể đăng ký các sự kiện quan trọng, TurtleScreen phải có trọng tâm. [Xem phương pháp listen[]
.]
>>> def f[]: ... fd[50] ... lt[60] ... >>> screen.onkey[f, "Up"] >>> screen.listen[]
turtle.
onkeypress
[ Vui vẻ , key = Không ]
Thông số
vui vẻ - một chức năng không có đối số hoặc
None
key - một chuỗi: key [vd: một người khác] hoặc biểu tượng khóa [ví dụ:
Liên kết thú vị với sự kiện nhấn phím nếu phím được đưa ra hoặc với bất kỳ sự kiện nhấn phím nào nếu không có phím nào được đưa
ra. Lưu ý: để có thể đăng ký các sự kiện quan trọng, TurtleScreen phải có trọng tâm. [Xem phương pháp listen[]
.]
>>> def f[]: ... fd[50] ... >>> screen.onkey[f, "Up"] >>> screen.listen[]
turtle.
title
[ vui , btn = 1 , thêm = Không ]
turtle.
onscreenclick
[ Vui vẻ , btn = 1 , thêm
= Không ]
Thông số
vui vẻ - một hàm có hai đối số sẽ được gọi với tọa độ của điểm được nhấp trên khung vẽ
btn - số nút chuột, mặc định là 1 [nút chuột trái]
thêm -
True
hoặcFalse
- nếuTrue
, một ràng buộc mới sẽ được thêm vào, nếu không nó sẽ thay thế một ràng buộc cũ
Liên kết thú vị với các sự
kiện nhấp chuột trên màn hình này. Nếu vui là None
, các ràng buộc hiện có được loại bỏ.
Ví dụ cho một phiên bản TurtleScreen có tên screen
và một phiên bản Rùa có tên rùa:
>>> screen. title[turtle.goto] # Subsequently clicking into the TurtleScreen will >>> # make the turtle move to the clicked point. >>> screen. title[None] # remove event binding again
Ghi chú
Phương thức TurtleScreen này có sẵn dưới dạng hàm toàn cục chỉ dưới tên onscreenclick
. Hàm toàn cục title
là một hàm khác bắt nguồn từ phương thức Rùa title
.
turtle.
ontimer
[ Vui
vẻ , t = 0 ]
Thông số
vui vẻ - một chức năng không có đối số
t - một số> = 0
Cài đặt bộ hẹn giờ gọi vui sau t mili giây.
>>> running = True >>> def f[]: ... if running: ... fd[50] ... lt[60] ... screen.ontimer[f, 250] >>> f[] ### makes the turtle march around >>> running = False
turtle.
mainloop
[ ]
turtle.
done
[ ]
Bắt đầu vòng lặp sự kiện - gọi hàm mainloop của Tkinter. Phải là tuyên bố cuối cùng trong một chương trình đồ họa rùa. Phải không được sử dụng nếu một kịch bản được điều hành từ bên trong IDLE trong chế độ -n [Không subprocess] - sử dụng tương tác đồ họa rùa.
Phương thức nhập
turtle.
textinput
[ Tiêu đề , dấu nhắc ]
Thông số
tiêu đề - chuỗi
dấu nhắc - chuỗi
Bật lên một cửa sổ hộp thoại cho đầu vào của một chuỗi. Tiêu đề tham số là tiêu đề của cửa sổ hộp thoại, lời nhắc là một văn bản chủ yếu mô tả thông tin nào cần nhập. Trả về chuỗi đầu vào. Nếu hộp thoại bị hủy, trả lại None
.
>>>
>>> screen.textinput["NIM", "Name of first player:"]
turtle.
numinput
[ Tiêu đề , kịp thời , mặc định = Không , minval
= None , maxval = Không ]
Thông số
tiêu đề - chuỗi
dấu nhắc - chuỗi
mặc định - số [tùy chọn]
số lượng tối thiểu - số [tùy chọn]
tối đa - số [tùy chọn]
Bật lên một cửa sổ hộp thoại để nhập số. tiêu đề là tiêu đề của cửa sổ hộp thoại, dấu nhắc là một văn bản chủ yếu mô tả thông tin số nào để nhập. default: giá trị mặc định, minval: giá trị tối thiểu cho đầu vào, maxval: giá trị tối đa cho đầu vào Đầu vào số phải nằm trong phạm vi minval .. maxval nếu chúng được đưa ra. Nếu không, một gợi ý được đưa ra và hộp thoại vẫn mở để sửa. Trả về số đầu vào. Nếu hộp thoại bị hủy, trả lại None
.
>>>
>>> screen.numinput["Poker", "Your stakes:", 1000, minval=10, maxval=10000]
Cài đặt và phương pháp đặc biệt
turtle.
mode
[ Mode = Không ]
Thông số
chế độ - một trong các chuỗi tiêu chuẩn, trực tiếp
Đặt chế độ rùa [tiêu chuẩn của người Hồi giáo, biểu tượng của người Hồi giáo hoặc người nổi tiếng thế giới] và thực hiện thiết lập lại. Nếu chế độ không được đưa ra, chế độ hiện tại được trả về.
Chế độ tiêu chuẩn của chế độ cao là tương thích với chế độ cũ turtle
. Chế độ logo Logo Chế độ tương thích với hầu hết đồ họa Logo Logo. Chế độ World world sử dụng tọa độ thế giới do người dùng định nghĩa. Chú ý : trong chế độ này, các góc sẽ xuất hiện méo nếu x/y
tỷ
lệ đơn vị không bằng 1.
"Tiêu chuẩn" | bên phải [phía đông] | ngược chiều kim đồng hồ |
"Logo" | hướng lên [phía bắc] | chiều kim đồng hồ |
>>> mode["logo"] # resets turtle heading to north
>>> mode[]
'logo'
turtle.
colormode
[ cmode = Không có ]
Thông số
cmode - một trong các giá trị 1.0 hoặc 255
Trả về mã màu hoặc đặt thành 1.0 hoặc 255. Sau đó , các giá trị r , g , b của bộ ba màu phải nằm trong phạm vi 0 .. cmode .
>>> screen.colormode[1] >>> turtle.pencolor[240, 160, 80] Traceback [most recent call last]: ... TurtleGraphicsError: bad color sequence: [240, 160, 80] >>> screen.colormode[] 1.0 >>> screen.colormode[255] >>> screen.colormode[] 255 >>> turtle.pencolor[240,160,80]
turtle.
getcanvas
[]
Trả lại Canvas của TurtleScreen này. Hữu ích cho những người trong cuộc, những người biết phải làm gì với Tkinter Canvas.
>>> cv = screen.getcanvas[] >>> cv
turtle.
getshapes
[]
Trả về một danh sách tên của tất cả các hình dạng rùa hiện có.
>>> screen.getshapes[]
['arrow', 'blank', 'circle', ..., 'turtle']
turtle.
register_shape
[ tên , hình dạng = Không ]
turtle.
addshape
[ tên , hình
dạng = Không ]
Có ba cách khác nhau để gọi hàm này:
Tên là tên của tệp gif và hình dạng là
None
: Cài đặt hình dạng hình ảnh tương ứng.>>>
>>> screen.register_shape["turtle.gif"]
Ghi chú
Hình dạng hình ảnh không xoay khi xoay rùa, vì vậy chúng không hiển thị tiêu đề của rùa!
tên là một chuỗi tùy ý và hình dạng là một cặp các tọa độ: Cài đặt hình dạng đa giác tương ứng.
>>> screen.register_shape["triangle", [[5,-3], [0,5], [-5,-3]]]
tên là một chuỗi tùy ý và hình dạng là một
Shape
đối tượng [hợp chất] : Cài đặt hình dạng hợp chất tương ứng.
Thêm một hình dạng rùa vào shapelist của TurtleScreen. Chỉ các hình dạng
được đăng ký như vậy có thể được sử dụng bằng cách ban hành lệnh shape[shapename]
.
turtle.
turtles
[ ]
Trả về danh sách rùa trên màn hình.
>>> for turtle in screen.turtles[]: ... turtle.color["red"]
turtle.
window_height
[ ]
Trả lại chiều cao của cửa sổ rùa.
>>>
>>> screen.window_height[]
480
turtle.
window_width
[ ]
Trả lại chiều rộng của cửa sổ rùa.
>>>
>>> screen.window_width[]
640
Phương pháp riêng cho màn hình, không được thừa kế từ TurtleScreen
turtle.
bye
[ ]
Đóng cửa sổ turtlegraphics.
turtle.
exit title
[ ]
Phương pháp Bind bye [] để nhấp chuột trên Màn hình.
Nếu giá trị bằng cách sử dụng_IDLE trong bộ từ điển cấu hình là False
[giá trị mặc định], thì
cũng nhập mainloop. Ghi chú: Nếu IDLE với -n
switch [không subprocess] được sử dụng, giá trị này nên được đặt True
trong turtle.cfg
. Trong trường hợp này, mainloop của IDLE cũng hoạt động cho tập lệnh máy khách.
turtle.
setup
[ Width = _CFG ["width"], height = _CFG ["height"], startx = _CFG ["leftright"], starty = _CFG ["topbottom"] ]
Đặt kích thước và vị trí của cửa sổ chính. Giá trị
mặc định của các đối số được lưu trữ trong từ điển cấu hình và có thể được thay đổi thông qua một turtle.cfg
tệp.
Thông số
chiều rộng - nếu là số nguyên, kích thước tính bằng pixel, nếu nổi, một phần nhỏ của màn hình; mặc định là 50% màn hình
chiều cao - nếu là số nguyên, chiều cao tính bằng pixel, nếu nổi, một phần nhỏ của màn hình; mặc định là 75% màn hình
startx - nếu dương, vị trí bắt đầu bằng pixel từ cạnh trái của màn hình, nếu âm từ cạnh phải, nếu
None
, cửa sổ trung tâm theo chiều nganggiật mình - nếu dương, vị trí bắt đầu bằng pixel từ cạnh trên của màn hình, nếu âm từ cạnh dưới, nếu
None
, cửa sổ trung tâm theo chiều dọc
>>> screen.setup [width=200, height=200, startx=0, starty=0] >>> # sets window to 200x200 pixels, in upper left of screen >>> screen.setup[width=.75, height=0.5, startx=None, starty=None] >>> # sets window to 75% of screen by 50% of screen and centers
turtle.
title
[ Tiêu đề ]
Thông số
tiêu đề - một chuỗi được hiển thị trên thanh tiêu đề của cửa sổ đồ họa rùa
Đặt tiêu đề của cửa sổ rùa để chuẩn độ .
>>> screen.title["Welcome to the turtle zoo!"]
Lớp Công
lớp turtle.
RawTurtle
[ canvas ]
lớp turtle.
RawPen
[ canvas ]
Thông số
vải - a tkinter.Canvas
, a ScrolledCanvas
hoặc a TurtleScreen
Tạo một con rùa. Con rùa có tất cả các phương pháp được mô tả ở trên là phương pháp của Rùa / RawTurtle.
lớp turtle.
Turtle
Lớp con của RawTurtle, có cùng giao diện nhưng dựa trên
một Screen
đối tượng mặc định được tạo tự động khi cần lần đầu tiên.
lớp turtle.
TurtleScreen
[ cv ]
Thông số
cv - atkinter.Canvas
Cung cấp các phương pháp định hướng màn hình như setbg[]
vv được mô tả ở trên.
lớp turtle.
Screen
Phân lớp của TurtleScreen, với bốn phương thức được thêm vào .
lớp turtle.
ScrolledCanvas
[ bậc thầy ]
Thông số
master - một số tiện ích Tkinter để chứa ScrolledCanvas, tức là một Tkinter-canvas có thêm thanh cuộn
Được sử dụng bởi Lớp màn hình, do đó tự động cung cấp ScrolledCanvas làm sân chơi cho rùa.
lớp turtle.
Shape
[ type_ , dữ liệu ]
Thông số
type_ - một trong các chuỗi đa giác
Mô hình cấu trúc dữ liệu hình dạng. Các cặp phải tuân theo đặc điểm kỹ thuật này:[type_, data]
Đa giác | một đa giác-tuple, tức là một cặp các tọa độ |
Hình ảnh | một hình ảnh [trong hình thức này chỉ được sử dụng nội bộ!] |
Hợp chất |
|
addcomponent
[ Nhiều , điền , đề cương = Không ]
Thông số
nhiều - một đa giác, tức là một tuple của cặp số
tô màu - một màu poly sẽ được lấp đầy
phác thảo - một màu cho phác thảo của poly [nếu có]
Thí dụ:
>>> poly = [[0,0],[10,-5],[0,10],[-10,-5]] >>> s = Shape["compound"] >>> s.addcomponent[poly, "red", "blue"] >>> # ... add more components and then use register_shape[]
Xem hình dạng hợp chất .
lớp turtle.
Vec2D
[ x , y ]
Một lớp vectơ hai chiều, được sử dụng làm lớp trợ giúp để thực hiện đồ họa rùa. Có thể hữu ích cho các chương trình đồ họa rùa quá. Bắt nguồn từ tuple, vì vậy một vectơ là một tuple!
Cung cấp [cho a , b vectơ, số k ]:
a + b
bổ sung vectora - b
phép trừ vectora * b
sản phẩm bên trongk * a
và nhân với vô hướnga * k
abs[a]
giá trị tuyệt đối của mộta.rotate[angle]
Vòng xoay
Trợ giúp và cấu hình
Làm thế nào để sử dụng sự giúp đỡ
Các phương thức công khai của các lớp Màn hình và Rùa được ghi lại rộng rãi thông qua các tài liệu. Vì vậy, chúng có thể được sử dụng làm trợ giúp trực tuyến thông qua các tiện ích trợ giúp của Python:
Khi sử dụng IDLE, các chú giải công cụ hiển thị chữ ký và dòng đầu tiên của các tài liệu được gõ trong các lệnh gọi hàm / phương thức.
Gọi
help[]
các phương thức hoặc hàm hiển thị các tài liệu:>>>
>>> help[Screen.bgcolor] Help on method bgcolor in module turtle: bgcolor[self, *args] unbound turtle.Screen method Set or return backgroundcolor of the TurtleScreen. Arguments [if given]: a color string or three numbers in the range 0..colormode or a 3-tuple of such numbers. >>> screen.bgcolor["orange"] >>> screen.bgcolor[] "orange" >>> screen.bgcolor[0.5,0,0.5] >>> screen.bgcolor[] "#800080" >>> help[Turtle.penup] Help on method penup in module turtle: penup[self] unbound turtle.Turtle method Pull the pen up -- no drawing when moving. Aliases: penup | pu | up No argument >>> turtle.penup[]
Các tài liệu của các hàm xuất phát từ các phương thức có dạng được sửa đổi:
>>>
>>> help[bgcolor] Help on function bgcolor in module turtle: bgcolor[*args] Set or return backgroundcolor of the TurtleScreen. Arguments [if given]: a color string or three numbers in the range 0..colormode or a 3-tuple of such numbers. Example:: >>> bgcolor["orange"] >>> bgcolor[] "orange" >>> bgcolor[0.5,0,0.5] >>> bgcolor[] "#800080" >>> help[penup] Help on function penup in module turtle: penup[] Pull the pen up -- no drawing when moving. Aliases: penup | pu | up No argument Example: >>> penup[]
Các tài liệu đã sửa đổi này được tạo tự động cùng với các định nghĩa hàm xuất phát từ các phương thức tại thời điểm nhập.
Bản dịch của docstrings sang ngôn ngữ khác nhau
Có một tiện ích để tạo một từ điển các khóa trong đó là các tên phương thức và các giá trị trong đó là các tài liệu về các phương thức công khai của các lớp Màn hình và Rùa.
turtle.
write_docstringdict
[ Tên tệp = "rùa_docopesdict" ]
Thông số
tên tệp - một chuỗi, được sử dụng làm tên tệp
Tạo và viết từ điển chuỗi vào tập lệnh Python với tên tệp đã cho. Hàm này phải được gọi một cách rõ ràng [nó không được sử dụng bởi các lớp đồ họa rùa]. Từ điển doc
Chuỗi sẽ được ghi vào tập lệnh Python . Nó được dự định để phục vụ như là một khuôn mẫu để dịch các tài liệu sang các ngôn ngữ khác nhau.filename.py
Nếu bạn [hoặc sinh viên của bạn] muốn sử dụng turtle
với trợ giúp trực tuyến bằng ngôn ngữ mẹ đẻ của bạn, bạn phải dịch các tài liệu và lưu tệp kết quả như ví dụ turtle_docstringdict_german.py
.
Nếu bạn có một mục thích hợp trong turtle.cfg
tệp của mình , từ điển này sẽ được đọc tại thời điểm nhập và sẽ thay thế các tài liệu tiếng Anh ban đầu.
Tại thời điểm viết bài này có từ điển docopes bằng tiếng Đức và tiếng Ý. [Các yêu cầu xin vui lòng để glingl @ AON . Tại .]
Cách cấu hình Màn hình và Rùa
Cấu hình mặc định tích hợp bắt chước hình thức và hành vi của mô-đun rùa cũ để giữ khả năng tương thích tốt nhất với nó.
Nếu bạn muốn sử dụng một cấu hình khác phản ánh tốt hơn các tính năng của mô-đun này hoặc phù hợp hơn với nhu cầu của bạn, ví dụ để sử dụng trong lớp học, bạn có thể chuẩn bị một tệp cấu hình turtle.cfg
sẽ được đọc tại thời điểm nhập và sửa đổi cấu hình theo cài đặt của nó.
Cấu hình được xây dựng sẽ tương ứng với rùa.cfg sau:
width = 0.5 height = 0.75 leftright = None topbottom = None canvwidth = 400 canvheight = 300 mode = standard colormode = 1.0 delay = 10 undobuffersize = 1000 shape = classic pencolor = black fillcolor = black resizemode = noresize visible = True language = english exampleturtle = turtle examplescreen = screen title = Python Turtle Graphics using_IDLE = False
Giải thích ngắn về các mục được chọn:
Bốn dòng đầu tiên tương ứng với các đối số của
Screen.setup[]
phương thức.Dòng 5 và 6 tương ứng với các đối số của phương thức
Screen.screensize[]
.hình dạng có thể là bất kỳ hình dạng tích hợp nào, ví dụ: mũi tên, rùa, v.v ... Để biết thêm thông tin hãy thử
help[shape]
.Nếu bạn muốn sử dụng không có fillcolor [tức là làm cho rùa trong suốt], bạn phải viết [nhưng tất cả các chuỗi không trống phải không có dấu ngoặc kép trong tệp cfg].
fillcolor = ""
Nếu bạn muốn phản ánh trạng thái của rùa, bạn phải sử dụng .
resizemode = auto
Nếu bạn đặt ví dụ: docopesdict sẽ được tải tại thời điểm nhập [nếu có trên đường dẫn nhập, ví dụ: trong cùng thư mục với .
language = italian
turtle_docstringdict_italian.py
turtle
Các mục thipleturtle và màn hình mẫu xác định tên của các đối tượng này khi chúng xảy ra trong các tài liệu. Việc chuyển đổi các tài liệu phương thức thành các tài liệu chức năng sẽ xóa các tên này khỏi các tài liệu.
using_IDLE : Đặt tùy chọn này thành
True
nếu bạn thường xuyên làm việc với IDLE và công tắc -n của nó [không có quy trình con nào]. Điều này sẽ ngăn chặnexit title[]
để vào mainloop.
Có thể có một turtle.cfg
tệp trong thư mục turtle
được lưu trữ và một tệp bổ
sung trong thư mục làm việc hiện tại. Cái sau sẽ ghi đè cài đặt của cái đầu tiên.
Thư mục Lib/turtledemo
chứa một turtle.cfg
tập tin. Bạn có thể nghiên cứu nó như một ví dụ và xem hiệu ứng của nó khi chạy các bản demo [tốt nhất không phải từ bên trong trình xem demo].
turtledemo
- Kịch bản
demo
Các turtledemo
gói bao gồm một tập hợp các bản demo kịch bản. Các tập lệnh này có thể được chạy và xem bằng trình xem demo được cung cấp như sau:
Ngoài ra, bạn có thể chạy các kịch bản demo riêng lẻ. Ví dụ,
python -m turtledemo.bytedesign
Thư mục turtledemo
gói chứa:
Một trình xem demo
__main__.py
có thể được sử dụng để xem mã nguồn của các tập lệnh và chạy chúng cùng một lúc.Nhiều tập lệnh thể hiện các tính năng khác nhau của
turtle
mô-đun. Ví dụ có thể được truy cập thông qua menu Ví dụ. Họ cũng có thể được chạy độc lập.Một
turtle.cfg
tệp dùng làm ví dụ về cách viết và sử dụng các tệp đó.
Các kịch bản demo là:
bytedesign | mô hình đồ họa rùa cổ điển phức tạp |
|
sự hỗn loạn | đồ thị Động lực học Verhulst, cho thấy tính toán của máy tính đôi khi có thể tạo ra kết quả trái với mong đợi thông thường | tọa độ thế giới |
đồng hồ | đồng hồ analog hiển thị thời gian của máy tính của bạn | rùa như kim đồng hồ, ontimer |
colormixer | thử nghiệm với r, g, b |
|
rừng | 3 cây đầu tiên | ngẫu nhiên |
fractalcurves | Đường cong Hilbert & Koch | đệ quy |
lindenmayer | ethnomathatures [kolams Ấn Độ] | Hệ thống L |
Minimal_hanoi | Tháp Hà Nội | Rùa hình chữ nhật như đĩa Hà Nội [hình dạng, hình dạng] |
nó | chơi trò chơi nim cổ điển với ba đống gậy chống lại máy tính. | rùa như nimsticks, điều khiển sự kiện [chuột, bàn phím] |
Sơn | chương trình vẽ siêu tối giản |
|
Sự thanh bình | tiểu học | rùa: ngoại hình và hoạt hình |
dương vật | ốp lát định kỳ với diều và phi tiêu |
|
hành tinh_and_moon | mô phỏng hệ thống hấp dẫn | hình dạng hợp chất, |
round_dance | rùa nhảy xoay theo chiều ngược nhau | hình dạng hợp chất, hình dạng bản sao, độ nghiêng, get_shapepoly, cập nhật |
sắp xếp_animate | trình diễn trực quan các phương pháp phân loại khác nhau | căn chỉnh đơn giản, ngẫu nhiên |
cây | một [đồ họa] chiều rộng cây đầu tiên [sử dụng máy phát điện] |
|
hai_canvases | Thiết kế đơn giản | rùa trên hai bức tranh |
wikipedia | một mô hình từ bài viết trên wikipedia về đồ họa rùa |
|
âm dương | một ví dụ cơ bản khác |
|
Chúc vui vẻ!
Thay đổi kể từ khi Python 2.6
Các phương pháp
Turtle.tracer[]
,Turtle.window_width[]
vàTurtle.window_height[]
đã được loại bỏ. Các phương thức có tên và chức năng này hiện chỉ khả dụng dưới dạng phương thứcScreen
. Các chức năng có nguồn gốc từ những vẫn còn có sẵn. [Trên thực tế đã có trong Python 2.6, các phương thức này chỉ là các bản sao củaTurtleScreen
/Screen
-method tương ứng .]Phương pháp
Turtle.fill[]
đã được loại bỏ. Hành vi củabegin_fill[]
vàend_fill[]
đã thay đổi một chút: bây giờ mọi quy trình điền phải được hoàn thành bằng mộtend_fill[]
cuộc gọi.Một phương pháp
Turtle.filling[]
đã được thêm vào. Nó trả về một giá trị boolean:True
nếu quá trình điền đang diễn ra,False
nếu không. Hành vi này tương ứng với mộtfill[]
cuộc gọi không có đối số trong Python 2.6.
Thay đổi kể từ khi Python 3.0
Các phương pháp
Turtle.shearfactor[]
,Turtle.shapetransform[]
vàTurtle.get_shapepoly[]
đã được thêm vào. Do đó, toàn bộ các biến đổi tuyến tính thông thường hiện có sẵn để biến đổi hình dạng rùa.Turtle.tiltangle[]
đã được cải tiến về chức năng: bây giờ nó có thể được sử dụng để lấy hoặc đặt độ nghiêng.Turtle.settiltangle[]
đã bị phản đốiPhương thức
Screen.onkeypress[]
này đã được thêm vào như là một bổ sungScreen.onkey[]
mà trên thực tế liên kết các hành động với sự kiện keyrelease. Theo đó, cái sau có một bí danh :Screen.onkeyrelease[]
.Phương pháp
Screen.mainloop[]
đã được thêm vào. Vì vậy, khi chỉ làm việc với các đối tượng Màn hình và Rùa, người ta không được nhậpmainloop[]
thêm nữa.Hai phương thức nhập liệu đã được thêm vào
Screen.textinput[]
vàScreen.numinput[]
. Các hộp thoại đầu vào bật lên và trả về chuỗi và số tương ứng.Hai tập lệnh mẫu
tdemo_nim.py
vàtdemo_round_dance.py
đã được thêm vàoLib/turtledemo
thư mục.
Copied !!!