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() và 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:
tư 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õ 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 tô ('màu vàng')
Giống như up() và 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 packagetrê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() và 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ẽ
backward()| zz001zz |back()goto()| zz001zz |setposition()- 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()vàradians().) Hướng góc phụ thuộc vào chế độ rùa, xemmode().>>> 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()vàradians().) Hướng góc phụ thuộc vào chế độ rùa, xemmode().>>> 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 y là
Nonethì x phải là một cặp tọa độ hoặcVec2D(ví dụ: được trả về bởipos()).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
Noney -- một số hoặc
Nonefill_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+4và2*pensizesẽ đượ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 n là
Nonethì 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.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ề
Truenếu bút bị hạ,Falsenế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, 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()).pencolor(r, g, b)Đặt màu bút thành màu RGB được biểu thị bằng r, g và b. Mỗi r, g và b 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, 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ằng r, g và b. Mỗi r, g và b 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()và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)và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 (
Truenếu điền,Falsenế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êmbegin_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, move là
False.>>> 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.isvisible()¶
Trả về
Truenếu Rùa được hiển thị,Falsenế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ởishapesize()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 --
TruehoặcFalse-- 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 fun là
None, 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 --
TruehoặcFalse-- 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 fun là
None, 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 --
TruehoặcFalse-- 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 fun là
None, 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
TurtleScreenmà 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 size làNone, 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:
Tạo một đối tượng Hình dạng trống thuộc loại "hợp chất".
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")
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, 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()).bgcolor(r, g, b)Đặt màu nền thành màu RGB được biểu thị bằng r, g và b. Mỗi r, g và b 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ặcNone
Đặ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 là
"nopic", hãy xóa hình nền nếu có. Nếu picname làNone, 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ụcclearlà một hàm khác bắt nguồn từ phương thứcclearcủ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ụcresetlà một hàm khác bắt nguồn từ phương thứcresetcủ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_animationsẽ 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
Nonekey -- 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 fun là
None, 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áplisten().)>>> 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
Nonekey -- 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 --
TruehoặcFalse-- 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 fun là
None, các liên kết hiện có sẽ bị xóa.Ví dụ về phiên bản TurtleScreen có tên
screenvà phiên bản Turtle có tênturtle:>>> 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ụconclicklà một hàm khác bắt nguồn từ phương thứconclickcủ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
turtlecũ. 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ủax/ykhô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:
name là tên file ảnh (PNG, GIF, PGM, PPM) và shape là
None: 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!
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!
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)))
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ànhTruetrongturtle.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
Falsevà đã tồn tại một tệp có tên tệp đã cho thì hàm sẽ đưa raFileExistsError. Nếu làTruethì 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 ngangstarty -- 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,ScrolledCanvashoặcTurtleScreen
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
Screenmặ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ápaddcomponent())- 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 + bphép trừ vector
a - bsản phẩm bên trong
a * bphép nhân
k * avàa * kvới vô hướngabs(a)giá trị tuyệt đối của axoay
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à Turtle và TurtleScreen/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, docstringdictturtle_docstringdict_italian.pysẽ đượ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ớiturtle).Các mục exampleturtle và examplescreen 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
Truenếu bạn thường xuyên làm việc với IDLE và công tắc-ncủa nó ("không có quy trình con"). Điều này sẽ ngănexitonclick()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__.pycó 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.cfgdù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 |
|---|---|---|
|
mô hình đồ họa rùa cổ điển phức tạp |
|
|
đồ 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 |
|
đồ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ồ, |
|
thí nghiệm với r, g, b |
|
|
3 cây rộng đầu tiên |
sự ngẫu nhiên |
|
Đường cong Hilbert & Koch |
đệ quy |
|
dân tộc học (kolams Ấn Độ) |
Hệ thống L |
|
Tháp Hà Nội |
Rùa hình chữ nhật như đĩa Hà Nội ( |
|
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) |
|
chương trình vẽ siêu tối giản |
|
|
tiểu học |
rùa: ngoại hình và hoạt hình |
|
lát gạch định kỳ với diều và phi tiêu |
|
|
mô phỏng hệ thống hấp dẫn |
hình dạng ghép, |
|
một mẫu từ bài viết wikipedia về đồ họa rùa |
|
|
rùa nhảy múa quay theo cặp ngược chiều nhau |
hình dạng ghép, |
|
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 |
|
cây đầu tiên có chiều rộng (đồ họa) (sử dụng trình tạo) |
|
|
thiết kế đơn giản |
rùa trên hai bức tranh |
|
một ví dụ cơ bản khác |
Chúc vui vẻ!
Những thay đổi kể từ Python 2.6¶
Các phương thức
Turtle.tracer,Turtle.window_widthvàTurtle.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ủaScreen. 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ứcTurtleScreen/Screentương ứng.)Phương pháp
Turtle.fill()đã bị loại bỏ. Hoạt động củabegin_fill()và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ọiend_fill().Một phương thức
Turtle.fillingđã được thêm vào. Nó trả về một giá trị boolean:Truenếu quá trình điền đang được tiến hành,Falsenếu không. Hành vi này tương ứng với lệnh gọifill()không có đối số trong Python 2.6.
Những thay đổi kể từ Python 3.0¶
Các phương thức
Turtleshearfactor(),shapetransform()và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
Screenonkeypress()đã được thêm vào để bổ sung choonkey(). 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àmmainloop()độc lập khi làm việc với các đối tượngScreenvàTurtle.Hai phương thức nhập đã được thêm vào:
Screen.textinputvàScreen.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.