Python All: Các phương thức chuyển động của rùa
Trước tiên bạn cần 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()
Ta cũng có thể sử dụng duy nhất 1 lệnh sau để thay thế cho 2 lệnh trên:
import turtle as turtle
Dưới đây là danh sách các phương thức chuyển động của rùa:
1. turtle.forward(khoảng cách) hoặc turtle.fd(khoảng cách)
Tham 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ụ:
import turtle as turtle turtle.forward(100) #di chuyển 100 bước về phía trước
2. turtle.back(khoảng cách) hoặc turtle.bk(khoảng cách) hoặc turtle.backward(khoảng cách)
Tham 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ụ:
import turtle as turtle turtle.backward(100) #di chuyển 100 bước về phía sau
3. turtle.right(góc) hoặc turtle.rt(góc)
Tham 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 phương thức degrees() và radians()). Hướng góc phụ thuộc vào chế độ rùa, xem mode()
.
Ví dụ:
import turtle as turtle turtle.right(90) #xoay phải (theo chiều kim đồng hồ) 90 độ
4. turtle.left(góc) hoặc turtle.lt(góc)
Tham 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 phương thức de
grees()
và radians()
). Hướng góc phụ thuộc vào chế độ rùa.
Ví dụ:
import turtle as turtle turtle.left(90) #xoay trái (ngược chiều kim đồng hồ) 90 độ
5. turtle.goto(x, y = None) hoặc turtle.setpos(x, y = None) hoặc turtle.setposition(x, y = None)
Tham 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ụ:
import turtle as turtle tp = turtle.pos() print(tp) turtle.setpos(60, 30) print(turtle.pos()) turtle.setpos((20, 80)) print(turtle.pos()) turtle.setpos(tp) print(turtle.pos())
6. turtle.setx(x)
Tham 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)
7. turtle.sety(y)
Tham 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)
8. turtle.setheading(to_angle) hoặc turtle.seth(to_angle)
Tham 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 độ:
chế độ căn bản |
chế độ logo |
---|---|
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
9. 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
10. turtle.circle(bán_kính, phạm_vi = None, bước = None)
Tham 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
11. turtle.dot(kích_thước = None, "color")
Tham 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
12. 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)
13. turtle.clearstamp(stampid)
Tham 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)
14. turtle.clearstamps(n = None)
Tham 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 <0 xóa n stamp cuối cùng.
>>> 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()
15. 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()
16. turtle.speed(tốc độ = None)
Tham 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