turtle --- Đồ họa rùa

Source code: Lib/turtle.py


Giới thiệu

Đồ họa rùa là sự triển khai của the popular geometric drawing tools introduced in Logo, được phát triển bởi Wally Feurzeig, Seymour Papert và Cynthia Solomon vào năm 1967.

Đây là một optional module. Nếu nó bị thiếu trong bản sao CPython của bạn, hãy tìm tài liệu từ nhà phân phối của bạn (nghĩa là bất kỳ ai đã cung cấp Python cho bạn). Nếu bạn là nhà phân phối, hãy xem Yêu cầu đối với các mô-đun tùy chọn.

Bắt đầu

Hãy tưởng tượng một con rùa robot bắt đầu từ (0, 0) trong mặt phẳng x-y. Sau import turtle, hãy đưa cho nó lệnh turtle.forward(15) và nó di chuyển (trên màn hình!) 15 pixel theo hướng nó hướng về phía trước, vẽ một đường khi nó di chuyển. Đưa cho nó lệnh turtle.right(25) và nó sẽ xoay tại chỗ 25 độ theo chiều kim đồng hồ.

Trong Python, đồ họa con rùa cung cấp hình ảnh đại diện cho một "con rùa" vật lý (một robot nhỏ có bút) vẽ trên một tờ giấy trên sàn.

Đó là một cách hiệu quả và đã được chứng minh rõ ràng để người học tiếp xúc với các khái niệm lập trình và tương tác với phần mềm, vì nó cung cấp phản hồi tức thì, rõ ràng. Nó cũng cung cấp khả năng truy cập thuận tiện vào đầu ra đồ họa nói chung.

Vẽ con rùa ban đầu được tạo ra như một công cụ giáo dục để giáo viên sử dụng trong lớp học. Đối với lập trình viên cần tạo ra một số đầu ra đồ họa, đó có thể là một cách để làm điều đó mà không cần phải đưa các thư viện bên ngoài hoặc phức tạp hơn vào công việc của họ.

Hướng dẫn

Người dùng mới nên bắt đầu ở đây. Trong hướng dẫn này, chúng ta sẽ khám phá một số điều cơ bản về vẽ rùa.

Bắt đầu môi trường rùa

Trong shell Python, nhập tất cả các đối tượng của mô-đun turtle

từ nhập khẩu rùa *

Nếu gặp lỗi No module named '_tkinter', bạn sẽ phải cài đặt Tk interface package trên hệ thống của mình.

Bản vẽ cơ bản

Đưa rùa tiến về phía trước 100 bước:

chuyển tiếp(100)

Bạn sẽ thấy (rất có thể là trong cửa sổ mới trên màn hình của bạn) một đường do con rùa vẽ, hướng về phía Đông. Thay đổi hướng của rùa để nó quay sang trái 120 độ (ngược chiều kim đồng hồ):

trái(120)

Hãy tiếp tục bằng cách vẽ một hình tam giác:

chuyển tiếp(100)
trái(120)
chuyển tiếp(100)

Hãy chú ý cách con rùa, được biểu thị bằng một mũi tên, chỉ theo các hướng khác nhau khi bạn điều khiển nó.

Thử nghiệm với các lệnh đó cũng như với backward()right().

Kiểm soát bút

Hãy thử thay đổi màu sắc - ví dụ: color('blue') - và chiều rộng của đường - ví dụ: width(3) - rồi vẽ lại.

Bạn cũng có thể di chuyển rùa xung quanh mà không cần vẽ, bằng cách nhấc bút: up() lên trước khi di chuyển. Để bắt đầu vẽ lại, hãy sử dụng down().

Vị trí của rùa

Đưa rùa của bạn trở lại điểm xuất phát (hữu ích nếu nó biến mất khỏi màn hình):

nhà()

Vị trí nhà nằm ở giữa màn hình của con rùa. Nếu bạn cần biết chúng, hãy lấy tọa độ x-y của con rùa bằng:

 thế()

Nhà ở (0, 0).

Và sau một thời gian, có lẽ nó sẽ giúp xóa cửa sổ để chúng ta có thể bắt đầu lại:

màn hình  ràng()

Xây dựng mô hình thuật toán

Bằng cách sử dụng các vòng lặp, có thể xây dựng các mẫu hình học:

cho các bước trong phạm vi (100):
    cho c in ('blue', 'red', 'green'):
        màu sắc(c)
        tiến (bước)
        đúng(30)

- tất nhiên, điều đó chỉ bị giới hạn bởi trí tưởng tượng!

Hãy vẽ hình ngôi sao ở đầu trang này. Chúng tôi muốn các đường màu đỏ, tô màu vàng:

màu sắc('đỏ')
màu  ('màu vàng')

Giống như up()down() xác định xem các dòng có được vẽ hay không, tính năng điền có thể được bật và tắt:

bắt đầu_fill()

Tiếp theo chúng ta sẽ tạo một vòng lặp:

trong khi Đúng:
    chuyển tiếp(200)
    trái(170)
    nếu abs(pos()) < 1:
        phá vỡ

abs(pos()) < 1 là một cách hay để biết khi nào rùa đã trở lại vị trí ban đầu.

Cuối cùng điền đầy đủ:

end_fill()

(Lưu ý rằng việc điền chỉ thực sự diễn ra khi bạn đưa ra lệnh end_fill().)

Làm thế nào để...

Phần này đề cập đến một số trường hợp và cách tiếp cận sử dụng rùa điển hình.

Bắt đầu càng nhanh càng tốt

Một trong những điều thú vị của đồ họa con rùa là phản hồi trực quan, ngay lập tức có sẵn từ các lệnh đơn giản - đó là một cách tuyệt vời để giới thiệu cho trẻ em các ý tưởng lập trình, với chi phí đầu tư tối thiểu (tất nhiên không chỉ dành cho trẻ em).

Mô-đun rùa thực hiện được điều này bằng cách hiển thị tất cả chức năng cơ bản của nó dưới dạng hàm, có sẵn với from turtle import *. Zz000zz bao gồm cách tiếp cận này.

Cần lưu ý rằng nhiều lệnh rùa thậm chí còn có những lệnh tương đương ngắn gọn hơn, chẳng hạn như fd() cho forward(). Những điều này đặc biệt hữu ích khi làm việc với những người học mà việc đánh máy không phải là một kỹ năng đối với họ.

Bạn cần cài đặt Tk interface package trên hệ thống của mình để đồ họa rùa hoạt động. Xin lưu ý rằng điều này không phải lúc nào cũng đơn giản, vì vậy hãy kiểm tra trước điều này nếu bạn dự định sử dụng đồ họa con rùa với người học.

Tự động bắt đầu và kết thúc điền

Bắt đầu với Python 3.14, bạn có thể sử dụng fill() context manager thay vì begin_fill()end_fill() để tự động bắt đầu và kết thúc điền. Đây là một ví dụ:

với điền():
    cho tôi trong phạm vi (4):
        chuyển tiếp(100)
        đúng(90)

chuyển tiếp(200)

Đoạn mã trên tương đương với:

bắt đầu_fill()
cho tôi trong phạm vi (4):
    chuyển tiếp(100)
    đúng(90)
end_fill()

chuyển tiếp(200)

Sử dụng không gian tên mô-đun turtle

Sử dụng from turtle import * rất tiện lợi - nhưng hãy cảnh báo rằng nó nhập một bộ sưu tập đối tượng khá lớn và nếu bạn đang làm bất cứ điều gì ngoại trừ đồ họa con rùa, bạn sẽ có nguy cơ xung đột tên (điều này càng trở thành vấn đề nếu bạn đang sử dụng đồ họa con rùa trong tập lệnh mà các mô-đun khác có thể được nhập).

Giải pháp là sử dụng import turtle - fd() trở thành turtle.fd(), width() trở thành turtle.width(), v.v. (Nếu việc gõ đi gõ lại "rùa" trở nên tẻ nhạt, hãy sử dụng ví dụ import turtle as t để thay thế.)

Sử dụng đồ họa rùa trong tập lệnh

Bạn nên sử dụng không gian tên mô-đun turtle như được mô tả ngay ở trên, ví dụ:

nhập khẩu rùa as t
từ nhập ngẫu nhiên ngẫu nhiên

cho tôi trong phạm vi (100):
    bước = int(ngẫu nhiên() * 100)
    góc = int(ngẫu nhiên() * 360)
    t.right(góc)
    t.fd(bước)

Tuy nhiên, cũng cần phải thực hiện một bước khác - ngay khi tập lệnh kết thúc, Python cũng sẽ đóng cửa sổ con rùa. Thêm:

t.mainloop()

đến cuối kịch bản. Tập lệnh bây giờ sẽ chờ để được loại bỏ và sẽ không thoát cho đến khi nó bị chấm dứt, chẳng hạn như bằng cách đóng cửa sổ đồ họa con rùa.

Sử dụng đồ họa rùa hướng đối tượng

Ngoài những mục đích giới thiệu rất cơ bản hoặc để thử mọi thứ nhanh nhất có thể, việc sử dụng phương pháp tiếp cận hướng đối tượng cho đồ họa con rùa sẽ thông thường hơn và mạnh mẽ hơn nhiều. Ví dụ: điều này cho phép nhiều rùa xuất hiện trên màn hình cùng một lúc.

Trong cách tiếp cận này, các lệnh rùa khác nhau là phương thức của các đối tượng (chủ yếu là các đối tượng Turtle). can của bạn sử dụng cách tiếp cận hướng đối tượng trong shell, nhưng nó sẽ điển hình hơn trong tập lệnh Python.

Ví dụ trên sau đó trở thành:

từ rùa nhập khẩu rùa
từ nhập ngẫu nhiên ngẫu nhiên

t = Rùa()
cho tôi trong phạm vi (100):
    bước = int(ngẫu nhiên() * 100)
    góc = int(ngẫu nhiên() * 360)
    t.right(góc)
    t.fd(bước)

t.screen.mainloop()

Lưu ý dòng cuối cùng. t.screen là một phiên bản của Screen mà phiên bản Turtle tồn tại trên đó; nó được tạo tự động cùng với con rùa.

Màn hình của rùa có thể được tùy chỉnh, ví dụ:

t.screen.title('Bản demo rùa hướng đối tượng')
t.screen.bgcolor("cam")

Tham khảo đồ họa rùa

Ghi chú

Trong tài liệu sau đây đưa ra danh sách đối số cho các hàm. Tất nhiên, các phương thức có thêm đối số đầu tiên self bị bỏ qua ở đây.

Phương pháp rùa

chuyển động của rùa
Di chuyển và vẽ
Cho biết trạng thái của Rùa
Cài đặt và đo lường
Kiểm soát bút
Trạng thái vẽ
Kiểm soát màu sắc
điền
Kiểm soát bản vẽ nhiều hơn
trạng thái rùa
Khả năng hiển thị
Ngoại hình
Sử dụng sự kiện
Phương pháp Rùa đặc biệt

Các phương pháp của TurtleScreen/Screen

Kiểm soát cửa sổ
Kiểm soát hoạt ảnh
Sử dụng sự kiện trên màn hình
Cài đặt và phương pháp đặc biệt
Phương thức nhập
Các phương pháp dành riêng cho Screen

Các phương thức của RawTurtle/Turtle và các hàm tương ứng

Hầu hết các ví dụ trong phần này đều đề cập đến một phiên bản Turtle có tên là turtle.

chuyển động của rùa

turtle.forward(distance)
turtle.fd(distance)
Tham số:

distance -- một số (số nguyên hoặc số float)

Di chuyển rùa về phía trước theo distance được chỉ định, theo hướng mà rùa đang hướng tới.

>>> rùa.position()
(0,00,0,00)
>>> rùa.forward(25)
>>> rùa.position()
(25,00,0,00)
>>> rùa.forward(-75)
>>> rùa.position()
(-50,00,0,00)
turtle.back(distance)
turtle.bk(distance)
turtle.backward(distance)
Tham số:

distance -- một con số

Di chuyển rùa về phía sau một khoảng distance, ngược với hướng mà rùa đang hướng tới. Đừng thay đổi hướng đi của rùa.

>>> rùa.position()
(0,00,0,00)
>>> rùa.backward(30)
>>> rùa.position()
(-30,00,0,00)
turtle.right(angle)
turtle.rt(angle)
Tham số:

angle -- một số (số nguyên hoặc số float)

Xoay rùa sang phải một đơn vị angle. (Các đơn vị theo độ mặc định, nhưng có thể được đặt thông qua các chức năng degrees()radians().) Hướng góc phụ thuộc vào chế độ rùa, xem mode().

>>> rùa.heading()
22.0
>>> rùa.right(45)
>>> rùa.heading()
337,0
turtle.left(angle)
turtle.lt(angle)
Tham số:

angle -- một số (số nguyên hoặc số float)

Rẽ trái theo đơn vị angle. (Các đơn vị theo độ mặc định, nhưng có thể được đặt thông qua các chức năng degrees()radians().) Hướng góc phụ thuộc vào chế độ rùa, xem mode().

>>> rùa.heading()
22.0
>>> rùa.left(45)
>>> rùa.heading()
67,0
turtle.goto(x, y=None)
turtle.setpos(x, y=None)
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 yNone thì x phải là một cặp tọa độ hoặc Vec2D (ví dụ: được trả về bởi pos()).

Di chuyển rùa đến vị trí tuyệt đối. Nếu bút úp xuống, hãy vẽ đường. Đừng thay đổi hướng của rùa.

>>> tp = rùa.pos()
>>> tp
(0,00,0,00)
>>> rùa.setpos(60,30)
>>> rùa.pos()
(60,00,30,00)
>>> rùa.setpos((20,80))
>>> rùa.pos()
(20,00,80,00)
>>> rùa.setpos(tp)
>>> rùa.pos()
(0,00,0,00)
turtle.teleport(x, y=None, *, fill_gap=False)
Tham số:
  • x -- một số hoặc None

  • y -- một số hoặc None

  • fill_gap -- một boolean

Di chuyển rùa đến vị trí tuyệt đối. Không giống như goto(x, y), một đường sẽ không được vẽ. Hướng của rùa không thay đổi. Nếu hiện đang lấp đầy, (các) đa giác được dịch chuyển từ đó sẽ được lấp đầy sau khi rời khỏi và việc điền sẽ bắt đầu lại sau khi dịch chuyển tức thời. Điều này có thể bị vô hiệu hóa bằng fill_gap=True, điều này làm cho đường tưởng tượng di chuyển trong quá trình dịch chuyển tức thời đóng vai trò như một rào cản lấp đầy như trong goto(x, y).

>>> tp = rùa.pos()
>>> tp
(0,00,0,00)
>>> rùa.teleport(60)
>>> rùa.pos()
(60,00,0,00)
>>> rùa.teleport(y=10)
>>> rùa.pos()
(60,00,10,00)
>>> rùa.teleport(20, 30)
>>> rùa.pos()
(20.00,30.00)

Added in version 3.12.

turtle.setx(x)
Tham số:

x -- một số (số nguyên hoặc số float)

Đặt tọa độ đầu tiên của rùa thành x, giữ nguyên tọa độ thứ hai.

>>> rùa.position()
(0,00,240,00)
>>> rùa.setx(10)
>>> rùa.position()
(10,00,240,00)
turtle.sety(y)
Tham số:

y -- một số (số nguyên hoặc số float)

Đặt tọa độ thứ hai của con rùa thành y, giữ nguyên tọa độ đầu tiên.

>>> rùa.position()
(0,00,40,00)
>>> rùa.sety(-10)
>>> rùa.position()
(0,00,-10,00)
turtle.setheading(to_angle)
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ế độ tiêu chuẩn

chế độ biểu tượng

0 - hướng đông

0 - hướng bắc

90 - hướng bắc

90 - đông

180 - hướng tây

180 - hướng nam

270 - phía nam

270 - hướng tây

>>> rùa.setheading(90)
>>> rùa.heading()
90,0
turtle.home()

Di chuyển rùa về gốc -- tọa độ (0,0) -- và đặt tiêu đề của nó theo hướng bắt đầu (tùy thuộc vào chế độ, xem mode()).

>>> rùa.heading()
90,0
>>> rùa.position()
(0,00,-10,00)
>>> rùa.home()
>>> rùa.position()
(0,00,0,00)
>>> rùa.heading()
0,0
turtle.circle(radius, extent=None, steps=None)
Tham số:
  • radius -- một con số

  • extent -- một số (hoặc None)

  • steps -- một số nguyên (hoặc None)

Vẽ một vòng tròn với radius đã cho. Trung tâm là đơn vị radius bên trái của con rùa; extent -- một góc -- xác định phần nào của đường tròn được vẽ. Nếu không có extent, hãy vẽ toàn bộ hình tròn. Nếu extent không phải là một vòng tròn đầy đủ thì một điểm cuối của cung tròn là vị trí bút hiện tại. Vẽ cung theo hướng ngược chiều kim đồng hồ nếu radius dương, nếu không thì theo chiều kim đồng hồ. Cuối cùng, hướng của con rùa được thay đổi theo lượng extent.

Vì vòng tròn gần giống với một đa giác đều nội tiếp nên steps xác định số bước cần 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 đều.

>>> rùa.home()
>>> rùa.position()
(0,00,0,00)
>>> rùa.heading()
0,0
>>> rùa.circle(50)
>>> rùa.position()
(-0,00,0,00)
>>> rùa.heading()
0,0
>>> rùa.circle(120, 180) # draw hình bán nguyệt
>>> rùa.position()
(0,00,240,00)
>>> rùa.heading()
180,0
turtle.dot()
turtle.dot(size)
turtle.dot(color, /)
turtle.dot(size, color, /)
turtle.dot(size, r, g, b, /)
Tham số:
  • size -- một số nguyên >= 1 (nếu có)

  • 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 size, sử dụng color. Nếu không cung cấp size thì tối đa pensize+42*pensize sẽ được sử dụng.

>>> rùa.home()
>>> rùa.dot()
>>> rùa.fd(50); rùa.dot(20, "blue"); rùa.fd(50)
>>> rùa.position()
(100,00,-0,00)
>>> rùa.heading()
0,0
turtle.stamp()

Đóng dấu một bản sao của hình con rùa lên khung vẽ ở vị trí con rùa hiện tại. Trả về stamp_id cho tem đó, bạn có thể sử dụng tem_id này để xóa tem bằng cách gọi clearstamp(stamp_id).

>>> rùa.color("blue")
>>> stamp_id = rùa.stamp()
>>> rùa.fd(50)
turtle.clearstamp(stampid)
Tham số:

stampid -- một số nguyên, phải là giá trị trả về của lệnh gọi stamp() trước đó

Xóa tem với stampid đã cho.

>>> rùa.position()
(150,00,-0,00)
>>> rùa.color("blue")
>>> astamp = rùa.stamp()
>>> rùa.fd(50)
>>> rùa.position()
(200,00,-0,00)
>>> rùa.clearstamp(astamp)
>>> rùa.position()
(200,00,-0,00)
turtle.clearstamps(n=None)
Tham số:

n -- một số nguyên (hoặc None)

Xóa tất cả hoặc n đầu tiên/cuối cùng của tem rùa. Nếu nNone thì xóa tất cả các tem, nếu n > 0 xóa các tem n đầu tiên, ngược lại nếu n < 0 thì xóa các tem n cuối cùng.

>>> cho i trong phạm vi (8):
... used_stamp_id = rùa.stamp()
... rùa.fd(30)
>>> rùa.clearstamp(2)
>>> rùa.clearstamps(-2)
>>> rùa.clearstamps()
turtle.undo()

Hoàn tác (liên tục) hành động cuối cùng của rùa. Số lượng hành động hoàn tác khả dụng được xác định bởi kích thước của bộ hoàn tác.

>>> cho i trong phạm vi (4):
... rùa.fd(50); rùa.lt(80)
...
>>> cho i trong phạm vi (8):
... rùa.undo()
turtle.speed(speed=None)
Tham số:

speed -- một số nguyên trong phạm vi 0..10 hoặc một chuỗi tốc độ (xem bên dưới)

Đặt tốc độ của rùa thành một giá trị nguyên trong phạm vi 0..10. Nếu không có đối số nào được đưa ra, hãy 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. Chuỗi tốc độ được ánh xạ tới các giá trị tốc độ như sau:

  • "nhanh nhất": 0

  • "nhanh": 10

  • "bình thường": 6

  • "chậm": 3

  • "chậm nhất": 1

Tốc độ từ 1 đến 10 thực thi hoạt ảnh vẽ đường và xoay rùa ngày càng nhanh hơn.

Chú ý: speed = 0 nghĩa là hoạt ảnh no diễn ra. tiến/lùi làm cho rùa nhảy và tương tự như vậy trái/phải làm cho rùa quay ngay lập tức.

>>> rùa.speed()
3
>>> rùa.speed('bình thường')
>>> rùa.speed()
6
>>> rùa.speed(9)
>>> rùa.speed()
9

Cho biết trạng thái của Rùa

turtle.position()
turtle.pos()

Trả về vị trí hiện tại của rùa (x,y) (dưới dạng vectơ Vec2D).

>>> rùa.pos()
(440,00,-0,00)
turtle.towards(x, y=None)
Tham số:
  • x -- một số hoặc một cặp/vectơ số hoặc một cá thể rùa

  • y -- một số nếu x là một số, nếu không thì None

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 con rùa khác. Điều này phụ thuộc vào hướng bắt đầu của rùa và phụ thuộc vào chế độ - "tiêu chuẩn"/"thế giới" hoặc "logo".

>>> rùa.goto(10, 10)
>>> rùa.hướng tới (0,0)
225,0
turtle.xcor()

Trả về tọa độ x của rùa.

>>> rùa.home()
>>> rùa.left(50)
>>> rùa.forward(100)
>>> rùa.pos()
(64,28,76,60)
>>> print(round(turtle.xcor(), 5))
64.27876
turtle.ycor()

Trả về tọa độ y của rùa.

>>> rùa.home()
>>> rùa.left(60)
>>> rùa.forward(100)
>>> in(turtle.pos())
(50,00,86,60)
>>> print(round(turtle.ycor(), 5))
86.60254
turtle.heading()

Trả về tiêu đề hiện tại của rùa (giá trị phụ thuộc vào chế độ rùa, xem mode()).

>>> rùa.home()
>>> rùa.left(67)
>>> rùa.heading()
67,0
turtle.distance(x, y=None)
Tham số:
  • x -- một số hoặc một cặp/vectơ số hoặc một cá thể rùa

  • y -- một số nếu x là một số, nếu không thì None

Trả về khoảng cách từ con rùa về (x,y), vectơ đã cho hoặc con rùa khác đã cho, theo đơn vị bước của con rùa.

>>> rùa.home()
>>> rùa.distance(30,40)
50,0
>>> rùa.distance((30,40))
50,0
>>> joe = Rùa()
>>> joe.forward(77)
>>> rùa.khoảng cách(joe)
77,0

Cài đặt đo lường

turtle.degrees(fullcircle=360.0)
Tham số:

fullcircle -- một con số

Đặt đơn vị đo góc, tức là đặt số "độ" cho một vòng tròn đầy đủ. Giá trị mặc định là 360 độ.

>>> rùa.home()
>>> rùa.left(90)
>>> rùa.heading()
90,0

>>> đơn vị đo góc # Change sang grad (hay còn gọi là gon,
>>> # grade, hoặc độ dốc và bằng 1/100 góc vuông.)
>>> rùa.độ(400.0)
>>> rùa.heading()
100,0
>>> rùa.độ(360)
>>> rùa.heading()
90,0
turtle.radians()

Đặt đơn vị đo góc là radian. Tương đương với degrees(2*math.pi).

>>> rùa.home()
>>> rùa.left(90)
>>> rùa.heading()
90,0
>>> rùa.radians()
>>> rùa.heading()
1.5707963267948966

Kiểm soát bút

Trạng thái vẽ

turtle.pendown()
turtle.pd()
turtle.down()

Kéo bút xuống - vẽ khi di chuyển.

turtle.penup()
turtle.pu()
turtle.up()

Kéo bút lên - không vẽ khi di chuyển.

turtle.pensize(width=None)
turtle.width(width=None)
Tham số:

width -- một số dương

Đặt độ dày đường thành width hoặc trả lại. Nếu chế độ thay đổi kích thước được đặt thành "tự động" và hình con rùa là một đa giác, thì đa giác đó sẽ được vẽ với cùng độ dày đường. Nếu không có đối số nào được đưa ra thì giá trị pensize hiện tại sẽ được trả về.

>>> rùa.pensize()
1
>>> Turtle.pensize(10) # from ở đây được vẽ trên các đường có chiều rộng 10
turtle.pen(pen=None, **pendict)
Tham số:
  • pen -- một từ điển có một số hoặc tất cả các khóa được liệt kê bên dưới

  • 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 làm từ khóa

Trả về hoặc đặt thuộc tính của bút trong "từ điển bút" với các cặp khóa/giá trị sau:

  • "hiển thị": Đúng/Sai

  • "pendown": Đúng/Sai

  • "pencolor": chuỗi màu hoặc bộ màu

  • "fillcolor": chuỗi màu hoặc bộ màu

  • "pensize": số dương

  • "tốc độ": số trong phạm vi 0..10

  • "resizemode": "tự động" hoặc "người dùng" hoặc "noresize"

  • "stretchfactor": (số dương, số dương)

  • "phác thảo": số dương

  • "nghiêng": số

Từ điển này có thể được sử dụng làm đối số cho lệnh gọi tiếp theo tới pen() để khôi phục trạng thái bút trước đây. 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.

>>> rùa.pen(fillcolor="đen", pencolor="đỏ", pensize=10)
>>> đã sắp xếp(turtle.pen().items())
[('tô màu', 'đen'), ('phác thảo', 1), ('màu bút', 'đỏ'),
 ('pendown', True), ('pensize', 10), ('resizemode', 'noresize'),
 ('shearfactor', 0,0), ('hiển thị', Đúng), ('tốc độ', 9),
 ('hệ số giãn', (1.0, 1.0)), ('nghiêng', 0.0)]
>>> penstate=turtle.pen()
>>> rùa.color("vàng", "")
>>> rùa.penup()
>>> được sắp xếp(turtle.pen().items())[:3]
[('màu tô', ''), ('phác thảo', 1), ('màu bút', 'màu vàng')]
>>> rùa.pen(penstate, fillcolor="green")
>>> được sắp xếp(turtle.pen().items())[:3]
[('fillcolor', 'green'), ('outline', 1), ('pencolor', 'red')]
turtle.isdown()

Trả về True nếu bút bị hạ, False nếu bút lên.

>>> rùa.penup()
>>> rùa.isdown()
sai
>>> rùa.pendown()
>>> rùa.isdown()
đúng

Kiểm soát màu sắc

turtle.pencolor()
turtle.pencolor(color, /)
turtle.pencolor(r, g, b, /)

Trả lại hoặc đặt bút màu.

Bốn định dạng đầu vào được cho phép:

pencolor()

Trả về màu bút hiện tại dưới dạng chuỗi đặc tả màu hoặc dưới dạng bộ dữ liệu (xem ví dụ). Có thể được sử dụng làm đầu vào cho lệnh gọi color/pencolor/fillcolor/bgcolor khác.

pencolor(colorstring)

Đặt pencolor thành colorstring, là 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 bộ r, gb. Mỗi r, gb phải nằm trong phạm vi 0..colormode, trong đó colormode là 1.0 hoặc 255 (xem colormode()).

pencolor(r, g, b)

Đặt màu bút thành màu RGB được biểu thị bằng r, gb. Mỗi r, gb phải nằm trong phạm vi 0..colormode.

Nếu hình con rùa là một đa giác, đường viền của đa giác đó sẽ được vẽ bằng màu bút mới đặt.

>>> chế độ màu()
1.0
>>> rùa.pencolor()
'đỏ'
>>> rùa.pencolor("nâu")
>>> rùa.pencolor()
'nâu'
>>> tup = (0,2, 0,8, 0,55)
>>> rùa.pencolor(tup)
>>> rùa.pencolor()
(0,2, 0,8, 0,5490196078431373)
>>> chế độ màu(255)
>>> rùa.pencolor()
(51.0, 204.0, 140.0)
>>> rùa.pencolor('#32c18f')
>>> rùa.pencolor()
(50.0, 193.0, 143.0)
turtle.fillcolor()
turtle.fillcolor(color, /)
turtle.fillcolor(r, g, b, /)

Trả về hoặc đặt màu tô.

Bốn định dạng đầu vào được cho phép:

fillcolor()

Trả về màu tô 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ệnh gọi color/pencolor/fillcolor/bgcolor khác.

fillcolor(colorstring)

Đặt màu tô thành colorstring, là chuỗi đặc tả màu Tk, 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 bộ r, gb. Mỗi r, gb 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ằng r, gb. Mỗi r, gb phải nằm trong phạm vi 0..colormode.

Nếu hình con rùa là một đa giác, phần bên trong của đa giác đó sẽ được vẽ bằng màu tô mới được đặt.

>>> rùa.fillcolor("tím")
>>> rùa.fillcolor()
'tím'
>>> rùa.pencolor()
(50.0, 193.0, 143.0)
>>> rùa.fillcolor((50, 193, 143)) # Integers, không nổi
>>> rùa.fillcolor()
(50.0, 193.0, 143.0)
>>> rùa.fillcolor('#ffffff')
>>> rùa.fillcolor()
(255.0, 255.0, 255.0)
turtle.color()
turtle.color(color, /)
turtle.color(r, g, b, /)
turtle.color(pencolor, fillcolor, /)

Trả về hoặc đặt màu bút và màu tô.

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ề màu bút hiện tại và màu tô hiện tại dưới dạng một cặp chuỗi hoặc bộ dữ liệu đặc tả màu được trả về bởi pencolor()fillcolor().

color(colorstring), color((r,g,b)), color(r,g,b)

Các đầu vào như trong pencolor(), đặt cả hai màu tô và màu bút thành giá trị đã cho.

color(colorstring1, colorstring2), color((r1,g1,b1), (r2,g2,b2))

Tương đương với pencolor(colorstring1)fillcolor(colorstring2) và tương tự nếu sử dụng định dạng đầu vào khác.

Nếu hình con rùa là một đa giác, đường viền và phần bên trong của đa giác đó sẽ được vẽ bằng các màu mới đặt.

>>> rùa.color("đỏ", "xanh")
>>> rùa.color()
('đỏ', 'xanh')
>>> màu sắc ("#285078", "#a0c8f0")
>>> màu()
((40.0, 80.0, 120.0), (160.0, 200.0, 240.0))

Xem thêm: Phương pháp sàng lọc colormode().

điền

turtle.filling()

Trả về trạng thái điền (True nếu điền, False nếu khác).

>>> rùa.begin_fill()
>>> nếu rùa.filling():
... rùa.pensize(5)
... khác:
... rùa.pensize(3)
turtle.fill()

Điền vào hình được vẽ trong khối with turtle.fill():.

>>> rùa.color("đen", "đỏ")
>>> với rùa.fill():
... rùa.circle(80)

Sử dụng fill() tương đương với việc thêm begin_fill() trước khối điền và end_fill() sau khối điền:

>>> rùa.color("đen", "đỏ")
>>> rùa.begin_fill()
>>> rùa.circle(80)
>>> rùa.end_fill()

Added in version 3.14.

turtle.begin_fill()

Được gọi ngay trước khi vẽ một hình cần điền.

turtle.end_fill()

Điền vào hình được vẽ sau lệnh gọi cuối cùng tới begin_fill().

Việc các vùng chồng chéo cho đa giác tự giao nhau hoặc nhiều hình dạng có được lấp đầy hay không tùy thuộc vào đồ họa của hệ điều hành, loại chồng chéo và số lượng chồng chéo. Ví dụ, ngôi sao Rùa ở trên có thể toàn màu vàng hoặc có một số vùng màu trắng.

>>> rùa.color("đen", "đỏ")
>>> rùa.begin_fill()
>>> rùa.circle(80)
>>> rùa.end_fill()

Kiểm soát bản vẽ nhiều hơn

turtle.reset()

Xóa các bản vẽ của con rùa khỏi màn hình, căn giữa lại con rùa và đặt các biến về giá trị mặc định.

>>> rùa.goto(0,-22)
>>> rùa.left(100)
>>> rùa.position()
(0,00,-22,00)
>>> rùa.heading()
100,0
>>> rùa.reset()
>>> rùa.position()
(0,00,0,00)
>>> rùa.heading()
0,0
turtle.clear()

Xóa hình vẽ của con 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ư hình vẽ của các loài rùa khác không bị ảnh hưởng.

turtle.write(arg, move=False, align='left', font=('Arial', 8, 'normal'))
Tham số:
  • arg -- đối tượng được ghi vào TurtleScreen

  • move -- Đúng/Sai

  • align -- một trong các chuỗi "trái", "giữa" hoặc phải"

  • font -- một bộ ba (tên phông chữ, cỡ chữ, kiểu phông chữ)

Viết văn bản - biểu diễn chuỗi của arg - tại vị trí con rùa hiện tại theo align ("trái", "giữa" hoặc "phải") và với phông chữ đã cho. Nếu move đúng, bút sẽ được di chuyển xuống góc dưới bên phải của văn bản. Theo mặc định, moveFalse.

>>> turtle.write("Home = ", True, align="center")
>>> turtle.write((0,0), True)

trạng thái rùa

Khả năng hiển thị

turtle.hideturtle()
turtle.ht()

Làm cho con rùa trở nên vô hình. Bạn nên làm điều này khi đang thực hiện một số bức vẽ phức tạp, vì việc giấu con rùa sẽ tăng tốc độ vẽ lên một cách rõ rệt.

>>> rùa.hideturtle()
turtle.showturtle()
turtle.st()

Làm cho con rùa có thể nhìn thấy được.

>>> rùa.showturtle()
turtle.isvisible()

Trả về 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

Ngoại hình

turtle.shape(name=None)
Tham số:

name -- một chuỗi là một tên hình hợp lệ

Đặt hình dạng con rùa thành hình dạng với name đã cho hoặc, nếu không có tên, hãy trả về tên của hình dạng hiện tại. Hình dạng có name phải tồn tại trong từ điển hình dạng của TurtleScreen. Ban đầu có các hình dạng đa giác sau: "mũi tên", "rùa", "hình tròn", "hình vuông", "tam giác", "cổ điển". Để tìm hiểu về cách xử lý các hình dạng, hãy xem Phương pháp sàng lọc register_shape().

>>> rùa.shape()
'cổ điển'
>>> rùa.shape("rùa")
>>> rùa.shape()
'rùa'
turtle.resizemode(rmode=None)
Tham số:

rmode -- một trong các chuỗi "auto", "user", "noresize"

Đặt chế độ thay đổi kích thước thành một trong các giá trị: "tự động", "người dùng", "noresize". Nếu rmode không được cung cấp, hãy trả về chế độ thay đổi kích thước hiện tại. Các chế độ thay đổi kích thước khác nhau có các tác dụng sau:

  • "auto": điều chỉnh hình dáng của con rùa tương ứng với giá trị của pensize.

  • "người dùng": điều chỉnh diện mạo của con rùa theo các giá trị của hệ số giãn và độ rộng đường viền (đường viền), do shapesize() đặt.

  • "noresize": không có sự điều chỉnh nào về ngoại hình của rùa.

resizemode("user") được gọi bởi shapesize() khi được sử dụng với các đối số.

>>> rùa.resizemode()
'noresize'
>>> rùa.resizemode("auto")
>>> rùa.resizemode()
'tự động'
turtle.shapesize(stretch_wid=None, stretch_len=None, outline=None)
turtle.turtlesize(stretch_wid=None, stretch_len=None, outline=None)
Tham số:
  • stretch_wid -- số dương

  • stretch_len -- số dương

  • outline -- số dương

Trả về hoặc đặt thuộc tính x/y-stretchfactors và/hoặc đường viền của bút. Đặt chế độ thay đổi kích thước thành "người dùng". Nếu và chỉ khi chế độ thay đổi kích thước được đặt thành "người dùng", con rùa sẽ được hiển thị được kéo dài theo hệ số giãn của nó: stretch_wid là hệ số giãn vuông góc với hướng của nó, stretch_len là hệ số giãn theo hướng của nó, outline xác định độ rộng của đường viền của hình dạng.

>>> rùa.shapesize()
(1.0, 1.0, 1)
>>> rùa.resizemode("người dùng")
>>> rùa.shapesize(5, 5, 12)
>>> rùa.shapesize()
(5, 5, 12)
>>> rùa.shapesize(phác thảo=8)
>>> rùa.shapesize()
(5, 5, 8)
turtle.shearfactor(shear=None)
Tham số:

shear -- số (tùy chọn)

Đặt hoặc trả về hệ số cắt hiện tại. Cắt hình con rùa theo hệ số cắt đã cho, là tiếp tuyến của góc cắt. not có thay đổi hướng di chuyển của rùa không? Nếu lực cắt không được đưa ra: trả về hệ số cắt hiện tại, i. đ. tiếp tuyến của góc cắt, qua đó các đường thẳng song song với hướng của con rùa bị cắt.

>>> rùa.shape("vòng tròn")
>>> rùa.shapesize(5,2)
>>> rùa.shearfactor(0.5)
>>> rùa.shearfactor()
0,5
turtle.tilt(angle)
Tham số:

angle -- một con số

Xoay hình con rùa bằng angle từ góc nghiêng hiện tại của nó, nhưng not có thay đổi hướng di chuyển của con rùa hay không.

>>> rùa.reset()
>>> rùa.shape("vòng tròn")
>>> rùa.shapesize(5,2)
>>> rùa.tilt(30)
>>> rùa.fd(50)
>>> rùa.tilt(30)
>>> rùa.fd(50)
turtle.tiltangle(angle=None)
Tham số:

angle -- 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 cho trước, hãy xoay hình con rùa để 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ó là bao nhiêu. not có thay đổi hướng di chuyển của rùa không? Nếu góc không được đưa ra: trả về góc nghiêng hiện tại, i. đ. góc giữa hướng của hình con rùa và hướng đi của con rùa (hướng chuyển động của nó).

>>> rùa.reset()
>>> rùa.shape("vòng tròn")
>>> rùa.shapesize(5,2)
>>> rùa.tilt(45)
>>> rùa.tiltangle()
45,0
turtle.shapetransform(t11=None, t12=None, t21=None, t22=None)
Tham 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 con 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 hình con rùa theo ma trận gồm hàng đầu tiên t11, t12 và hàng thứ hai t21, t22. Định thức t11 * t22 - t12 * t21 không được bằng 0, nếu không sẽ xảy ra lỗi. Sửa đổi hệ số giãn, hệ số cắt và góc nghiêng theo ma trận đã cho.

>>> rùa = Rùa()
>>> rùa.shape("vuông")
>>> rùa.shapesize(4,2)
>>> rùa.shearfactor(-0.5)
>>> rùa.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 bộ 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 một hình dạng ghép.

>>> rùa.shape("vuông")
>>> rùa.shapetransform(4, -1, 0, 2)
>>> rùa.get_shapepoly()
((50, -20), (30, 20), (-50, 20), (-30, -20))

Sử dụng sự kiện

turtle.onclick(fun, btn=1, add=None)
Tham số:
  • fun -- 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ố lượng nút chuột, mặc định là 1 (nút chuột trái)

  • add -- True hoặc False -- nếu là True, 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 fun với các sự kiện nhấp chuột trên con rùa này. Nếu funNone, các liên kết hiện có sẽ bị xóa. Ví dụ về rùa ẩn danh, tức là cách thức thủ tục:

>>> lượt def(x, y):
... trái(180)
...
>>> onclick(turn) # Now bấm vào con rùa sẽ biến nó.
>>> onclick(None) # event-binding sẽ bị xóa
turtle.onrelease(fun, btn=1, add=None)
Tham số:
  • fun -- 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ố lượng nút chuột, mặc định là 1 (nút chuột trái)

  • add -- True hoặc False -- nếu là True, 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 fun với các sự kiện nhả nút chuột trên con rùa này. Nếu funNone, các liên kết hiện có sẽ bị xóa.

>>> lớp MyTurtle(Rùa):
... def ánh sáng(self,x,y):
... self.fillcolor("đỏ")
... def unglow(self,x,y):
... self.fillcolor("")
...
>>> rùa = MyTurtle()
>>> rùa.onclick(turtle.glow) # clicking khi rùa chuyển sang màu đỏ,
>>> Turtle.onrelease(turtle.unglow) # releasing biến nó thành trong suốt.
turtle.ondrag(fun, btn=1, add=None)
Tham số:
  • fun -- 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ố lượng nút chuột, mặc định là 1 (nút chuột trái)

  • add -- True hoặc False -- nếu là True, 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 fun với các sự kiện di chuyển chuột trên con rùa này. Nếu funNone, các liên kết hiện có sẽ bị xóa.

Lưu ý: Mọi chuỗi sự kiện di chuyển chuột trên một con rùa đều xảy ra trước sự kiện nhấp chuột vào con rùa đó.

>>> rùa.ondrag(turtle.goto)

Sau đó, nhấp và kéo Rùa sẽ di chuyển nó trên màn hình, từ đó tạo ra các hình vẽ tay (nếu bút hạ xuống).

Phương pháp Rùa đặc biệt

turtle.poly()

Ghi lại các đỉnh của đa giác được vẽ trong khối with turtle.poly():. Đỉnh đầu tiên và đỉnh cuối cùng sẽ được kết nối.

>>> với rùa.poly():
... rùa.forward(100)
... rùa.right(60)
... rùa.forward(100)

Added in version 3.14.

turtle.begin_poly()

Bắt đầu ghi lại các đỉnh của đ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 các đỉnh của đ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.

>>> rùa.home()
>>> rùa.begin_poly()
>>> rùa.fd(100)
>>> rùa.left(20)
>>> rùa.fd(30)
>>> rùa.left(60)
>>> rùa.fd(50)
>>> rùa.end_poly()
>>> p = rùa.get_poly()
>>> register_shape("myFavouriteShape", p)
turtle.clone()

Tạo và trả về một bản sao của rùa có cùng thuộc tính vị trí, tiêu đề và rùa.

>>> mick = Rùa()
>>> joe = mick.clone()
turtle.getturtle()
turtle.getpen()

Trả về chính đối tượng Rùa. Chỉ sử dụng hợp lý: như một hàm để trả về "con rùa ẩn danh":

>>> thú cưng = getturtle()
>>> pet.fd(50)
>>> thú cưng
<turtle.Turtle đối tượng ở 0x...>
turtle.getscreen()

Trả về đối tượng TurtleScreen mà con rùa đang vẽ. Sau đó, các phương thức TurtleScreen có thể được gọi cho đối tượng đó.

>>> ts = rùa.getscreen()
>>> ts
<turtle._Sàng lọc đối tượng ở 0x...>
>>> ts.bgcolor("hồng")
turtle.setundobuffer(size)
Tham số:

size -- một số nguyên hoặc None

Đặt hoặc tắt tính năng hoàn tác bộ đệm. Nếu size là một số nguyên, một bộ giải mã trống có kích thước nhất định sẽ được cài đặt. size cung cấp số lượng hành động rùa tối đa có thể được hoàn tác bằng phương thức/chức năng undo(). Nếu sizeNone, tính năng hoàn tác bộ đệm sẽ bị tắt.

>>> rùa.setundobuffer(42)
turtle.undobufferentries()

Trả về số lượng mục trong bộ đệm.

>>> trong khi hoàn tác bộ đệm():
... hoàn tác()

Hình dạng ghép

Để sử dụng các hình dạng rùa ghé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 trợ giúp Shape một cách rõ ràng như được mô tả bên dưới:

  1. Tạo một đối tượng Hình dạng trống thuộc loại "hợp chất".

  2. Thêm bao nhiêu thành phần vào đối tượng này tùy thích bằng cách sử dụng phương thức addcomponent().

    Ví dụ:

    >>> s = Hình dạng("hợp chất")
    >>> poly1 = ((0,0),(10,-5),(0,10),(-10,-5))
    >>> s.addcomComponent(poly1, "đỏ", "xanh")
    >>> poly2 = ((0,0),(10,-5),(-10,-5))
    >>> s.addcomComponent(poly2, "blue", "red")
    
  3. Bây giờ, hãy thêm Hình dạng vào danh sách hình dạng của Màn hình và sử dụng nó:

    >>> register_shape("myshape", s)
    >>> hình dạng ("myshape")
    

Ghi chú

Lớp Shape được sử dụng nội bộ bởi phương thức register_shape() theo nhiều cách khác nhau. Người lập trình ứng dụng phải xử lý lớp Shape only khi sử dụng các hình dạng ghép như được hiển thị ở trên!

Các phương thức của TurtleScreen/Screen và các chức năng tương ứng

Hầu hết các ví dụ trong phần này đều đề cập đến một phiên bản TurtleScreen có tên là screen.

Kiểm soát cửa sổ

turtle.bgcolor()
turtle.bgcolor(color, /)
turtle.bgcolor(r, g, b, /)

Trả về hoặc đặt màu nền của TurtleScreen.

Bốn định dạng đầu vào được cho phép:

bgcolor()

Trả về màu nền hiện tại dưới dạng chuỗi đặc tả màu hoặc dưới dạng bộ dữ liệu (xem ví dụ). Có thể được sử dụng làm đầu vào cho lệnh gọi color/pencolor/fillcolor/bgcolor khác.

bgcolor(colorstring)

Đặt màu nền thành colorstring, là chuỗi đặc tả màu Tk, chẳng hạn như "red", "yellow" hoặc "#33cc8c".

bgcolor((r, g, b))

Đặt màu nền thành màu RGB được biểu thị bằng bộ r, gb. Mỗi r, gb phải nằm trong phạm vi 0..colormode, trong đó colormode là 1.0 hoặc 255 (xem colormode()).

bgcolor(r, g, b)

Đặt màu nền thành màu RGB được biểu thị bằng r, gb. Mỗi r, gb phải nằm trong phạm vi 0..colormode.

>>> screen.bgcolor("cam")
>>> screen.bgcolor()
'cam'
>>> screen.bgcolor("#800080")
>>> screen.bgcolor()
(128,0, 0,0, 128,0)
turtle.bgpic(picname=None)
Tham số:

picname -- một chuỗi, tên của tệp hình ảnh (PNG, GIF, PGM và PPM) hoặc "nopic" hoặc None

Đặt hình nền hoặc trả về tên 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"nopic", hãy xóa hình nền nếu có. Nếu picnameNone, hãy trả về tên tệp của hình nền hiện tại.

>>> screen.bgpic()
'nopic'
>>> screen.bgpic("landscape.gif")
>>> screen.bgpic()
"phong cảnh.gif"
turtle.clear()

Ghi chú

Phương thức TurtleScreen này chỉ khả dụng dưới dạng hàm toàn cục dưới tên clearscreen. Hàm toàn cục clear là một hàm khác bắt nguồn từ phương thức clear của Turtle.

turtle.clearscreen()

Xóa tất cả các bản vẽ và tất cả rùa khỏi TurtleScreen. Đặt lại TurtleScreen hiện đang trống về trạng thái ban đầu: nền trắng, không có hình nền, không có ràng buộc sự kiện và dấu vết.

turtle.reset()

Ghi chú

Phương thức TurtleScreen này chỉ khả dụng dưới dạng hàm toàn cục 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 reset của Turtle.

turtle.resetscreen()

Đặt lại tất cả Rùa trên màn hình về trạng thái ban đầu.

turtle.screensize(canvwidth=None, canvheight=None, bg=None)
Tham số:
  • canvwidth -- số nguyên dương, chiều rộng mới của canvas tính bằng pixel

  • canvheight -- số nguyên dương, chiều cao mới của canvas tính bằng pixel

  • bg -- chuỗi màu hoặc bộ màu, màu nền mới

Nếu không có đối số nào được đưa ra, hãy trả về hiện tại (độ rộng canvas, chiều cao canvas). Ngược lại, hãy thay đổi kích thước khung vẽ 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ẽ, hãy sử dụng thanh cuộn. Với phương pháp này, người ta có thể hiển thị những phần của bản vẽ nằm 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 nhầm ;-)

turtle.setworldcoordinates(llx, lly, urx, ury)
Tham số:
  • llx -- một số, tọa độ x ở góc dưới bên trái của khung vẽ

  • lly -- một số, tọa độ y ở góc dưới bên trái của khung vẽ

  • urx -- một số, tọa độ x ở góc trên bên phải của khung vẽ

  • ury -- một số, tọa độ y ở 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" nếu cần. Điều này thực hiện một screen.reset(). Nếu chế độ "thế giới" đã được kích hoạt, tất cả các bản vẽ sẽ được vẽ lại theo tọa độ mới.

ATTENTION: trong các góc của hệ tọa độ do người dùng xác định có thể bị biến dạng.

>>> màn hình.reset()
>>> screen.setworldcoordens(-50,-7.5,50,7.5)
>>> cho _ trong phạm vi (72):
... trái(10)
...
>>> cho _ trong phạm vi (8):
... trái(45); fd(2) # a hình bát giác đều

Kiểm soát hoạt ảnh

turtle.no_animation()

Tạm thời vô hiệu hóa hoạt ảnh rùa. Mã được viết bên trong khối no_animation sẽ không có hình động; khi khối mã được thoát ra, bản vẽ sẽ xuất hiện.

>>> với screen.no_animation():
... cho dist trong phạm vi (2, 400, 2):
... fd(quận)
... rt(90)

Added in version 3.14.

turtle.delay(delay=None)
Tham số:

delay -- số nguyên dương

Đặt hoặc trả về bản vẽ delay tính bằng mili giây. (Đây là khoảng thời gian xấp xỉ giữa hai lần cập nhật canvas liên tiếp.) Độ trễ vẽ càng dài thì hoạt ảnh càng chậm.

Đối số tùy chọn:

>>> màn hình.delay()
10
>>> màn hình.delay(5)
>>> màn hình.delay()
5
turtle.tracer(n=None, delay=None)
Tham số:
  • n -- số nguyên không âm

  • delay -- số nguyên không âm

Bật/tắt hoạt ảnh rùa và đặt độ trễ cho bản vẽ cập nhật. Nếu n được cung cấp, chỉ mỗi lần cập nhật màn hình thông thường thứ n mới thực sự được thực hiện. (Có thể được sử dụng để tăng tốc độ 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)
>>> quận = 2
>>> cho i trong phạm vi (200):
... fd(quận)
... rt(90)
... quận += 2
turtle.update()

Thực hiện cập nhật TurtleScreen. Được sử dụng khi bộ theo dõi bị tắt.

Xem thêm phương pháp RawTurtle/Turtle speed().

Sử dụng sự kiện trên màn hình

turtle.listen(xdummy=None, ydummy=None)

Đặt tiêu điểm vào TurtleScreen (để thu thập các sự kiện quan trọng). Các đối số giả được cung cấp để có thể chuyển listen() sang phương thức onclick.

turtle.onkey(fun, key)
turtle.onkeyrelease(fun, key)
Tham số:
  • fun -- một hàm không có đối số hoặc None

  • key -- một chuỗi: khóa (ví dụ: "a") hoặc ký hiệu khóa (ví dụ: "dấu cách")

Liên kết fun với sự kiện phát hành khóa của khóa. Nếu funNone, các ràng buộc sự kiện sẽ bị xóa. 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().)

>>> giải quyết f():
... fd(50)
... lt(60)
...
>>> screen.onkey(f, "Up")
>>> màn hình.listen()
turtle.onkeypress(fun, key=None)
Tham số:
  • fun -- một hàm không có đối số hoặc None

  • key -- một chuỗi: khóa (ví dụ: "a") hoặc ký hiệu khóa (ví dụ: "dấu cách")

Liên kết fun với sự kiện nhấn phím nếu phím được cung cấp 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 cung cấp. Lưu ý: để có thể đăng ký các sự kiện quan trọng, TurtleScreen phải có tiêu điểm. (Xem phương pháp listen().)

>>> giải quyết f():
... fd(50)
...
>>> screen.onkey(f, "Up")
>>> màn hình.listen()
turtle.onclick(fun, btn=1, add=None)
turtle.onscreenclick(fun, btn=1, add=None)
Tham số:
  • fun -- 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ố lượng nút chuột, mặc định là 1 (nút chuột trái)

  • add -- True hoặc False -- nếu là True, 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 fun với các sự kiện nhấp chuột trên màn hình này. Nếu funNone, các liên kết hiện có sẽ bị xóa.

Ví dụ về phiên bản TurtleScreen có tên screen và phiên bản Turtle có tên turtle:

>>> screen.onclick(turtle.goto) # Subsequently nhấp vào TurtleScreen sẽ
>>> # make rùa di chuyển đến điểm nhấp chuột.
>>> screen.onclick(None) liên kết lại sự kiện # remove

Ghi chú

Phương thức TurtleScreen này chỉ khả dụng dưới dạng hàm toàn cục dưới tên onscreenclick. Hàm toàn cục onclick là một hàm khác bắt nguồn từ phương thức onclick của Turtle.

turtle.ontimer(fun, t=0)
Tham số:
  • fun -- một hàm không có đối số

  • t -- một số >= 0

Cài đặt bộ hẹn giờ gọi fun sau t mili giây.

>>> đang chạy = Đúng
>>> giải quyết f():
... nếu đang chạy:
... fd(50)
... lt(60)
... screen.ontimer(f, 250)
>>> f() ### makes chú rùa diễu hành
>>> đang chạy = Sai
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à câu lệnh cuối cùng trong chương trình đồ họa con rùa. Phải sử dụng not nếu tập lệnh được chạy từ bên trong IDLE ở chế độ -n (Không có quy trình con) - để sử dụng tương tác đồ họa rùa.

>>> màn hình.mainloop()

Phương thức nhập

turtle.textinput(title, prompt)
Tham số:
  • title -- chuỗi

  • prompt -- chuỗi

Bật lên một cửa sổ hộp thoại để nhập chuỗi. Tiêu đề tham số là tiêu đề của cửa sổ hộp thoại, dấu nhắc là văn bản chủ yếu mô tả thông tin cần nhập. Trả về chuỗi đầu vào. Nếu hộp thoại bị hủy, hãy trả về None.

>>> screen.textinput("NIM", "Tên người chơi đầu tiên:")
turtle.numinput(title, prompt, default=None, minval=None, maxval=None)
Tham số:
  • title -- chuỗi

  • prompt -- chuỗi

  • default -- số (tùy chọn)

  • minval -- số (tùy chọn)

  • maxval -- 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à văn bản chủ yếu mô tả thông tin số nào cần 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. Số đầu vào phải nằm trong phạm vi minval .. maxval nếu những giá trị này được đưa ra. Nếu không, một gợi ý sẽ được đưa ra và hộp thoại vẫn mở để sửa. Trả về số đã nhập. Nếu hộp thoại bị hủy, hãy trả về None.

>>> screen.numinput("Poker", "Số tiền đặt cược của bạn:", 1000, minval=10, maxval=10000)

Cài đặt và phương pháp đặc biệt

turtle.mode(mode=None)
Tham số:

mode -- một trong các chuỗi "tiêu chuẩn", "logo" hoặc "thế giới"

Đặt chế độ rùa ("tiêu chuẩn", "logo" hoặc "thế giới") và thực hiện đặt lại. Nếu chế độ không được đưa ra, chế độ hiện tại sẽ được trả về.

Chế độ "tiêu chuẩn" tương thích với turtle cũ. Chế độ "logo" tương thích với hầu hết đồ họa Logo rùa. Chế độ "thế giới" sử dụng "tọa độ thế giới" do người dùng xác định. Attention: ở chế độ này, các góc có vẻ bị biến dạng nếu tỷ lệ đơn vị của x/y không bằng 1.

Chế độ

Tiêu đề rùa ban đầu

góc tích cực

"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)

theo chiều kim đồng hồ

>>> mode("logo") # resets rùa hướng về phía bắc
>>> chế độ()
'logo'
turtle.colormode(cmode=None)
Tham số:

cmode -- một trong các giá trị 1.0 hoặc 255

Trả lại chế độ 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*.

>>> màn hình.colormode(1)
>>> rùa.pencolor(240, 160, 80)
Traceback (cuộc gọi gần đây nhất):
     ...
TurtleGraphicsError: chuỗi màu xấu: (240, 160, 80)
>>> màn hình.colormode()
1.0
>>> screen.colormode(255)
>>> màn hình.colormode()
255
>>> rùa.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 biết phải làm gì với Tkinter Canvas.

>>> cv = screen.getcanvas()
>>> cv
<đối tượng rùa.ScrolledCanvas ...>
turtle.getshapes()

Trả về danh sách tên của tất cả các hình dạng rùa hiện có.

>>> screen.getshapes()
['mũi tên', 'trống', 'vòng tròn', ..., 'rùa']
turtle.register_shape(name, shape=None)
turtle.addshape(name, shape=None)

Có bốn cách khác nhau để gọi hàm này:

  1. name là tên file ảnh (PNG, GIF, PGM, PPM) và shapeNone: Cài đặt hình ảnh tương ứng.

    >>> screen.register_shape("turtle.gif")
    

    Ghi chú

    Hình ảnh do not xoay khi xoay rùa nên không hiển thị tiêu đề của rùa!

  2. name là một chuỗi tùy ý và shape là tên file ảnh (PNG, GIF, PGM, và PPM): Cài đặt hình ảnh tương ứng.

    >>> screen.register_shape("turtle", "turtle.gif")
    

    Ghi chú

    Hình ảnh do not xoay khi xoay rùa nên không hiển thị tiêu đề của rùa!

  3. name là một chuỗi tùy ý và shape là một bộ gồm các cặp tọa độ: Cài đặt hình đa giác tương ứng.

    >>> screen.register_shape("tam giác", ((5,-3), (0,5), (-5,-3)))
    
  4. name là một chuỗi tùy ý và shape là một đối tượng Shape (hợp chất): Cài đặt hình dạng ghép tương ứng.

Thêm hình con rùa vào danh sách hình dạng của TurtleScreen. Chỉ những hình dạng đã đăng ký mới có thể được sử dụng bằng cách đưa ra lệnh shape(shapename).

Thay đổi trong phiên bản 3.14: Đã thêm hỗ trợ cho các định dạng hình ảnh PNG, PGM và PPM. Cả tên hình dạng và tên tệp hình ảnh đều có thể được chỉ định.

turtle.turtles()

Trả lại danh sách các loài rùa trên màn hình.

>>> cho rùa trong screen.turtles():
... rùa.color("đỏ")
turtle.window_height()

Trả về chiều cao của cửa sổ rùa.

>>> screen.window_height()
480
turtle.window_width()

Trả về chiều rộng của cửa sổ rùa.

>>> screen.window_width()
640

Các phương thức dành riêng cho Screen, không được kế thừa từ TurtleScreen

turtle.bye()

Đóng cửa sổ rùa.

turtle.exitonclick()

Liên kết phương thức bye() để nhấp chuột trên Màn hình.

Nếu giá trị "using_IDLE" trong từ điển cấu hình là False (giá trị mặc định), hãy nhập mainloop. Lưu ý: Nếu sử dụng IDLE với khóa chuyển -n (không có quy trình con), thì giá trị này phải được đặt thành True trong turtle.cfg. Trong trường hợp này, vòng lặp chính của IDLE cũng hoạt động đối với tập lệnh máy khách.

turtle.save(filename, overwrite=False)

Lưu bản vẽ rùa hiện tại (và rùa) dưới dạng tệp PostScript.

Tham số:
  • filename -- đường dẫn của tệp PostScript đã lưu

  • overwrite -- nếu False và đã tồn tại một tệp có tên tệp đã cho thì hàm sẽ đưa ra FileExistsError. Nếu là True thì file sẽ bị ghi đè.

>>> screen.save("my_drawing.ps")
>>> screen.save("my_drawing.ps", ghi đè=True)

Added in version 3.14.

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 đối số được lưu trữ trong từ điển cấu hình và có thể được thay đổi thông qua tệp turtle.cfg.

Tham số:
  • width -- nếu là số nguyên, kích thước tính bằng pixel, nếu là số float, là một phần của màn hình; mặc định là 50% màn hình

  • height -- nếu là số nguyên thì chiều cao tính bằng pixel, nếu là số float thì là một phần 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 tính 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ổ ở giữa theo chiều ngang

  • starty -- nếu dương, vị trí bắt đầu tính 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ổ ở giữa theo chiều dọc

>>> screen.setup (width=200, Height=200, startx=0, starty=0)
>>> Cửa sổ # sets có kích thước 200x200 pixel, ở phía trên bên trái màn hình
>>> screen.setup(width=.75, Height=0.5, startx=None, starty=None)
>>> Cửa sổ # sets lên 75% màn hình bằng 50% màn hình và tâm
turtle.title(titlestring)
Tham số:

titlestring -- một chuỗi được hiển thị trên thanh tiêu đề của cửa sổ đồ họa con rùa

Đặt tiêu đề của cửa sổ rùa thành titlestring.

>>> screen.title("Chào mừng đến với vườn thú rùa!")

Lớp học công cộng

class turtle.RawTurtle(canvas)
class turtle.RawPen(canvas)
Tham số:

canvas -- tkinter.Canvas, ScrolledCanvas hoặc TurtleScreen

Tạo một con rùa. Rùa có tất cả các phương pháp được mô tả ở trên là "phương pháp của Turtle/RawTurtle".

class turtle.Turtle

Lớp con của RawTurtle, có giao diện tương tự nhưng dựa trên đối tượng Screen mặc định được tạo tự động khi cần lần đầu tiên.

class turtle.TurtleScreen(cv)
Tham số:

cv -- một tkinter.Canvas

Cung cấp các phương pháp định hướng màn hình như bgcolor(), v.v. được mô tả ở trên.

class turtle.Screen

Lớp con của TurtleScreen, với four methods added.

class turtle.ScrolledCanvas(master)
Tham số:

master -- một số tiện ích Tkinter để chứa ScrolledCanvas, tức là Tkinter-canvas có thêm thanh cuộn

Được sử dụng bởi lớp Screen, do đó tự động cung cấp ScrolledCanvas làm sân chơi cho rùa.

class turtle.Shape(type_, data)
Tham số:

type_ -- một trong các chuỗi "đa giác", "hình ảnh", "hợp chất"

Hình dạng mô hình hóa cấu trúc dữ liệu. Cặp (type_, data) phải tuân theo thông số kỹ thuật này:

type_

data

"đa giác"

một bộ đa giác, tức là một bộ gồm các cặp tọa độ

"hình ảnh"

một hình ảnh (ở dạng này chỉ được sử dụng nội bộ!)

"hợp chất"

None (một hình dạng ghép phải được xây dựng bằng phương pháp addcomponent())

addcomponent(poly, fill, outline=None)
Tham số:
  • poly -- một đa giác, tức là một bộ các cặp số

  • fill -- một màu mà poly sẽ tràn ngập

  • outline -- màu cho đường viền của poly (nếu có)

Ví dụ:

>>> poly = ((0,0),(10,-5),(0,10),(-10,-5))
>>> s = Hình dạng("hợp chất")
>>> s.addcomComponent(poly, "đỏ", "xanh")
>>> # ... thêm nhiều thành phần hơn rồi sử dụng register_shape()

Xem Hình dạng ghép.

class turtle.Vec2D(x, y)

Lớp vectơ hai chiều, được sử dụng làm lớp trợ giúp để triển khai đồ họa con rùa. Có thể hữu ích cho các chương trình đồ họa rùa. Bắt nguồn từ bộ dữ liệu, vì vậy vectơ là bộ dữ liệu!

Cung cấp (đối với vectơ a, b, số k):

  • phép cộng vector a + b

  • phép trừ vector a - b

  • sản phẩm bên trong a * b

  • phép nhân k * aa * k với vô hướng

  • abs(a) giá trị tuyệt đối của a

  • xoay a.rotate(angle)

Giải thích

Một đối tượng rùa vẽ trên một đối tượng màn hình và có một số lớp chính trong giao diện hướng đối tượng rùa có thể được sử dụng để tạo chúng và liên kết chúng với nhau.

Một phiên bản Turtle sẽ tự động tạo một phiên bản Screen nếu chưa có phiên bản này.

Turtle là một lớp con của RawTurtle, doesn't tự động tạo bề mặt vẽ - canvas sẽ cần được cung cấp hoặc tạo cho nó. Zz007zz có thể là tkinter.Canvas, ScrolledCanvas hoặc TurtleScreen.

TurtleScreen là bề mặt vẽ cơ bản cho một con rùa. Screen là một lớp con của TurtleScreen và bao gồm some additional methods để quản lý hình thức (bao gồm kích thước và tiêu đề) cũng như hành vi của nó. Hàm tạo của TurtleScreen cần tkinter.Canvas hoặc ScrolledCanvas làm đối số.

Giao diện chức năng cho đồ họa rùa sử dụng nhiều phương pháp khác nhau là TurtleTurtleScreen/Screen. Phía sau, một đối tượng màn hình sẽ tự động được tạo bất cứ khi nào một hàm bắt nguồn từ phương thức Screen được gọi. Tương tự, một đối tượng rùa được tạo tự động bất cứ khi nào bất kỳ hàm nào xuất phát từ phương thức Turtle được gọi.

Để sử dụng nhiều rùa trên một màn hình, phải sử dụng giao diện hướng đối tượng.

Trợ giúp và cấu hình

Cách sử dụng trợ giúp

Các phương thức công khai của lớp Screen và Turtle đượ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, chú giải công cụ sẽ hiển thị chữ ký và dòng đầu tiên của chuỗi tài liệu của lệnh gọi hàm/phương thức đã nhập.

  • Gọi help() trên các phương thức hoặc hàm sẽ hiển thị chuỗi tài liệu

    >>> trợ giúp(Screen.bgcolor)
    Trợ giúp về phương pháp bgcolor trong mô-đun rùa:
    
    bgcolor(self, *args) rùa không liên kết. Phương thức màn hình
        Đặt hoặc trả về màu nền của TurtleScreen.
    
        Đối số (nếu có): một chuỗi màu hoặc ba số
        trong phạm vi 0..colormode hoặc 3 bộ số như vậy.
    
    
        >>> screen.bgcolor("cam")
        >>> screen.bgcolor()
        "màu cam"
        >>> screen.bgcolor(0,5,0,0,5)
        >>> screen.bgcolor()
        "#800080"
    
    >>> trợ giúp(Turtle.penup)
    Trợ giúp về phương pháp penup trong mô-đun rùa:
    
    penup(self) rùa không bị ràng buộc.Phương pháp rùa
        Kéo bút lên - không vẽ khi di chuyển.
    
        Bí danh: penup | pu | up
    
        Không tranh luận
    
        >>> rùa.penup()
    
  • Chuỗi tài liệu của các hàm bắt nguồn từ các phương thức có dạng được sửa đổi

    >>> trợ giúp(bgcolor)
    Trợ giúp về chức năng bgcolor trong mô-đun rùa:
    
    bgcolor(*args)
        Đặt hoặc trả về màu nền của TurtleScreen.
    
        Đối số (nếu có): một chuỗi màu hoặc ba số
        trong phạm vi 0..colormode hoặc 3 bộ số như vậy.
    
        Ví dụ::
    
          >>> bgcolor("cam")
          >>> bgcolor()
          "màu cam"
          >>> bgcolor(0,5,0,0,5)
          >>> bgcolor()
          "#800080"
    
    >>> trợ giúp(penup)
    Trợ giúp về chức năng penup trong mô-đun rùa:
    
    bút()
        Kéo bút lên - không vẽ khi di chuyển.
    
        Bí danh: penup | pu | up
    
        Không tranh luận
    
        Ví dụ:
        >>> penup()
    

Các chuỗi 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 bắt nguồn từ các phương thức tại thời điểm nhập.

Dịch tài liệu sang các ngôn ngữ khác nhau

Có một tiện ích để tạo một từ điển với các khóa là tên phương thức và các giá trị của nó là chuỗi tài liệu của các phương thức công khai của các lớp Screen và Turtle.

turtle.write_docstringdict(filename='turtle_docstringdict')
Tham số:

filename -- một chuỗi, được sử dụng làm tên tệp

Tạo và ghi từ điển chuỗi doc 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 chuỗi tài liệu sẽ được ghi vào tập lệnh Python filename.py. Nó nhằm mục đích phục vụ như một mẫu để dịch các chuỗi tài liệu sang các ngôn ngữ khác nhau.

Nếu bạn (hoặc học sinh 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 mình, bạn phải dịch chuỗi tài liệu và lưu tệp kết quả dưới dạng ví dụ: turtle_docstringdict_german.py.

Nếu bạn có mục nhập thích hợp trong tệp turtle.cfg 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 chuỗi tài liệu tiếng Anh gốc.

Tại thời điểm viết bài này, có các từ điển docstring bằng tiếng Đức và tiếng Ý. (Yêu cầu vui lòng gửi tới glingl@aon.at.)

Cách định 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à hoạt động của mô-đun rùa cũ để duy trì khả năng tương thích tốt nhất có thể 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ị tệp cấu hình turtle.cfg. Tệp này 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 tích hợp sẽ tương ứng với turtle.cfg sau:

chiều rộng = 0,5
chiều cao = 0,75
trái phải = Không có
trên cùng = Không có
canvwidth = 400
chiều cao có thể = 300
chế độ = tiêu chuẩn
chế độ màu = 1.0
độ trễ = 10
hủy kích thước = 1000
hình dạng = cổ điển
bút màu = đen
tô màu = đen
chế độ thay đổi kích thước = noresize
có thể nhìn thấy = Đúng
ngôn ngữ = tiếng anh
ví dụrùa = rùa
màn hình ví dụ = màn hình
title = Đồ họa rùa Python
sử dụng_IDLE = Sai

Giải thích ngắn gọn về các mục đã chọn:

  • Bốn dòng đầu tiên tương ứng với các đối số của phương thức Screen.setup.

  • Dòng 5 và 6 tương ứng với các đối số của phương thức Screen.screensize.

  • shape có thể là bất kỳ hình dạng tích hợp nào, ví dụ: mũi tên, con rùa, v.v. Để biết thêm thông tin, hãy thử help(shape).

  • Nếu bạn muốn không sử dụng màu tô (tức là làm cho con rùa trong suốt), bạn phải viết fillcolor = "" (nhưng tất cả các chuỗi không trống không được có dấu ngoặc kép trong tệp cfg).

  • Nếu bạn muốn phản ánh trạng thái của con rùa, bạn phải sử dụng resizemode = auto.

  • Nếu bạn đặt ví dụ: language = italian, docstringdict turtle_docstringdict_italian.py 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 turtle).

  • Các mục exampleturtleexamplescreen xác định tên của các đối tượng này khi chúng xuất hiện trong chuỗi tài liệu. Việc chuyển đổi chuỗi tài liệu phương thức thành chuỗi tài liệu hàm sẽ xóa các tên này khỏi chuỗi tài liệu.

  • using_IDLE: Đặt giá trị 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"). Điều này sẽ ngăn exitonclick() vào vòng lặp chính.

Có thể có một tệp turtle.cfg trong thư mục lưu trữ turtle 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 tệp turtle.cfg. Bạn có thể nghiên cứu nó làm ví dụ và xem tác dụng của nó khi chạy bản demo (tốt nhất là không chạy từ bên trong trình xem bản demo).

turtledemo --- Kịch bản demo

Gói turtledemo bao gồm một tập hợp các tập lệnh demo. Bạn có thể chạy và xem các tập lệnh này bằng trình xem demo được cung cấp như sau:

python -m rùademo

Ngoài ra, bạn có thể chạy các tập lệnh demo riêng lẻ. Ví dụ::

python -m rùademo.bytedesign

Thư mục gói turtledemo chứa:

  • Trình xem demo __main__.py có thể được sử dụng để xem mã nguồn của 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 mô-đun turtle. Ví dụ có thể được truy cập thông qua menu Ví dụ. Chúng cũng có thể được chạy độc lập.

  • Tệp turtle.cfg dùng làm ví dụ về cách ghi và sử dụng các tệp đó.

Các kịch bản demo là:

Tên

Mô tả

Tính năng

bytedesign

mô hình đồ họa rùa cổ điển phức tạp

tracer(), delay(), update()

chaos

đồ thị Động lực học Verhulst, cho thấy rằng các tính toán của máy tính đôi khi có thể tạo ra kết quả trái ngược với mong đợi thông thường

tọa độ thế giới

clock

đồ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

ondrag()

forest

3 cây rộng đầu tiên

sự ngẫu nhiên

fractalcurves

Đường cong Hilbert & Koch

đệ quy

lindenmayer

dân tộc học (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 (shape(), shapesize())

nim

chơi trò chơi nim cổ điển với ba đống gậy trên máy tính.

rùa như nimsticks, điều khiển sự kiện (chuột, bàn phím)

paint

chương trình vẽ siêu tối giản

onclick()

peace

tiểu học

rùa: ngoại hình và hoạt hình

penrose

lát gạch định kỳ với diều và phi tiêu

stamp()

planet_and_moon

mô phỏng hệ thống hấp dẫn

hình dạng ghép, Vec2D

rosette

một mẫu từ bài viết wikipedia về đồ họa rùa

clone(), undo()

round_dance

rùa nhảy múa quay theo cặp ngược chiều nhau

hình dạng ghép, clone() shapesize(), tilt(), get_shapepoly(), update()

sorting_animate

trình diễn trực quan các phương pháp sắp xếp khác nhau

căn chỉnh đơn giản, ngẫu nhiên

tree

cây đầu tiên có chiều rộng (đồ họa) (sử dụng trình tạo)

clone()

two_canvases

thiết kế đơn giản

rùa trên hai bức tranh

yinyang

một ví dụ cơ bản khác

circle()

Chúc vui vẻ!

Những thay đổi kể từ Python 2.6

  • Các phương thức Turtle.tracer, Turtle.window_widthTurtle.window_height đã bị 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ức của Screen. Các chức năng bắt nguồn từ những chức năng này vẫn có sẵn. (Trên thực tế đã có trong Python 2.6, các phương thức này chỉ là bản sao của các phương thức TurtleScreen/Screen tương ứng.)

  • Phương pháp Turtle.fill() đã bị loại bỏ. Hoạt động của begin_fill()end_fill() đã thay đổi một chút: bây giờ mọi quá trình điền phải được hoàn thành bằng lệnh gọi end_fill().

  • Một phương thức Turtle.filling đã được thêm vào. Nó trả về một giá trị boolean: True nếu quá trình điền đang được tiến hành, False nếu không. Hành vi này tương ứng với lệnh gọi fill() không có đối số trong Python 2.6.

Những thay đổi kể từ Python 3.0

  • Các phương thức Turtle shearfactor(), shapetransform()get_shapepoly() đã được thêm vào. Do đó, hiện có đầy đủ các phép biến đổi tuyến tính thông thường để biến đổi hình dạng con rùa. tiltangle() đã được cải tiến về chức năng: giờ đây nó có thể được sử dụng để lấy hoặc đặt góc nghiêng.

  • Phương thức Screen onkeypress() đã được thêm vào để bổ sung cho onkey(). Vì cái sau liên kết các hành động với sự kiện phát hành khóa nên bí danh: onkeyrelease() cũng được thêm vào cho nó.

  • Phương thức Screen.mainloop đã được thêm vào, do đó không cần sử dụng hàm mainloop() độc lập khi làm việc với các đối tượng ScreenTurtle.

  • Hai phương thức nhập đã được thêm vào: Screen.textinputScreen.numinput. Các hộp thoại nhập liệu bật lên này sẽ trả về các chuỗi và số tương ứng.