Hướng dẫn python turtle graphics
Python được sử dụng trong đồ họa thông qua các gói như Tkinter, Canvas. Và trong bài viết này mình sẽ hướng dẫn các bạn sử dụng thư viện Turtle trên Python. Show
Turtle Graphics là một chương trình con có sẵn trong Python khi bạn đã cài Python lên máy bạn. Turtle (con rùa) đây chỉ là hình ảnh tưởng tượng, nó cầm cây bút để vẽ, di chuyển đến đâu là nó vẽ đường thẳng đến đó. Nó vẽ bằng những cái chấm (dots-pixels) trên màn hình. Muốn sử dụng chương trình nhỏ turtle graphics của Python thì phải import nó vào từ “thư viện” của Python trong đó còn rất nhiều những chương trình nhỏ do Python soạn sẵn. Cần cái nào là phải nhập (gọi, call) chúng vào chương trình của mình bằng lệnh import. Ở đây ta cần gọi chương trình nhỏ turtle để vẽ nên ta dùng lệnh import turtle.
Có bốn hướng có thể di chuyển vào:
Con trỏ di chuyển
3. Thiết lập con trỏ vẽ
4. Code vẽ từng bộ phận
Code đầy đủ:
Thành quả:
Khai báo thư viện và tạo đối tượng của TurtleKhai báo thư viện:
Tạo đối tượng của Turtle
Các phương thức chuyển động của rùaturtle.forward(khoảng cách) hoặc turtle.fd(khoảng cách)Thông số khoảng cách - một số (số nguyên hoặc số float) Di chuyển rùa về phía trước một khoảng cách xác định (tính bằng pixel) theo hướng rùa đang hướng tới. Ví dụ: >>> turtle.position() (0.00,0.00) >>> turtle.forward(25) >>> turtle.position() (25.00,0.00) >>> turtle.forward(-75) >>> turtle.position() (-50.00,0.00) turtle.back(khoảng cách) hoặc turtle.bk(khoảng cách) hoặc turtle.backward(khoảng cách)Thông số khoảng cách - một con số Di chuyển rùa về phía sau một khoảng cách, ngược với hướng rùa đang đi. Ví dụ: >>> turtle.position() (0.00,0.00) >>> turtle.backward(30) >>> turtle.position() (-30.00,0.00) turtle.right(góc) hoặc turtle.rt(góc)Thông sốgóc - một số (số nguyên hoặc số float) Xoay rùa phải theo đơn vị góc . (Đơn vị theo độ mặc định, nhưng có thể được đặt qua chức năng >>> turtle.heading() 22.0 >>> turtle.right(45) >>> turtle.heading() 337.0 turtle.left(góc) hoặc turtle.lt(góc)Thông số góc - một số (số nguyên hoặc số float) Xoay trái rùa một góc. (Đơn vị theo độ mặc định, nhưng có thể được đặt lại bằng hàm Ví dụ: >>> turtle.heading() 22.0 >>> turtle.left(45) >>> turtle.heading() 67.0 turtle.goto(x, y = None) hoặc turtle.setpos(x, y = None) hoặc turtle.setposition(x, y = None)Thông số: x - một số hoặc một cặp/vectơ số y - một số hoặc Nếu y là Di chuyển rùa đến một vị trí tuyệt đối. Nếu bút được xuống đặt xuống thì sẽ vẽ đường thẳng. Ví dụ: >>> tp = turtle.pos() >>> tp (0.00,0.00) >>> turtle.setpos(60,30) >>> turtle.pos() (60.00,30.00) >>> turtle.setpos((20,80)) >>> turtle.pos() (20.00,80.00) >>> turtle.setpos(tp) >>> turtle.pos() (0.00,0.00) turtle.setx(x)Thông số: x - một số (số nguyên hoặc số float) Đặt hoành độ của rùa thành x, giữ nguyên tung độ. Ví dụ: >>> turtle.position() (0.00,240.00) >>> turtle.setx(10) >>> turtle.position() (10.00,240.00) turtle.sety(y)Thông số y - một số (số nguyên hoặc số float) Đặt tung độ của rùa thành y, giữ nguyên hoành độ. Ví dụ: >>> turtle.position() (0.00,40.00) >>> turtle.sety(-10) >>> turtle.position() (0.00,-10.00) turtle.setheading(to_angle) hoặc turtle.seth(to_angle)Thông số: to_angle - một số (số nguyên hoặc số float) Đặt hướng của rùa thành to_angle. Dưới đây là một số hướng phổ biến theo độ:
Ví dụ: >>> turtle.setheading(90) >>> turtle.heading() 90.0 turtle.home( )Di chuyển rùa đến điểm gốc - tọa độ (0,0) - và đặt heading của nó thành hướng bắt đầu của nó (tùy thuộc vào chế độ, xem Ví dụ: >>> turtle.heading() 90.0 >>> turtle.position() (0.00,-10.00) >>> turtle.home() >>> turtle.position() (0.00,0.00) >>> turtle.heading() 0.0 turtle.circle(bán_kính, phạm_vi = None, bước = None)Thông số: bán_kính - một số phạm_vi - một số (hoặc bước - một số nguyên (hoặc Vẽ một đường tròn có bán kính cho trước . Tâm là đơn vị bán kính còn lại của rùa; phạm vi - một góc - xác định phần của vòng tròn được vẽ. Nếu phạm vị là None thì sẽ vẽ toàn bộ vòng tròn. Nếu phạm vi không phải là một vòng tròn thì một điểm cuối của cung là vị trí bút hiện tại. Vẽ vòng cung theo hướng ngược chiều kim đồng hồ nếu bán kính dương, ngược lại theo chiều kim đồng hồ. Cuối cùng, hướng của rùa được thay đổi theo phạm vi. Vì vòng tròn được xấp xỉ bởi một đa giác thông thường được ghi, nên bước sẽ xác định số bước sẽ sử dụng. Nếu không được đưa ra, nó sẽ được tính toán tự động. Có thể được sử dụng để vẽ đa giác thông thường. Ví dụ: >>> turtle.home() >>> turtle.position() (0.00,0.00) >>> turtle.heading() 0.0 >>> turtle.circle(50) >>> turtle.position() (-0.00,0.00) >>> turtle.heading() 0.0 >>> turtle.circle(120, 180) # draw a semicircle >>> turtle.position() (0.00,240.00) >>> turtle.heading() 180.0 turtle.dot(kích_thước = None, "color")Thông số: kích_thước - một số nguyên >= 1 hoặc Nonecolor - một chuỗi màu hoặc một bộ màu sốVẽ một chấm tròn có đường kính là kích_thước, có màu là color. Nếu kích_thước không được đưa ra thì các giá trị penize+4 và 2*penize được sử dụng. Ví dụ: >>> turtle.home() >>> turtle.dot() >>> turtle.fd(50); turtle.dot(20, "blue"); turtle.fd(50) >>> turtle.position() (100.00,-0.00) >>> turtle.heading() 0.0 turtle.stamp( )Đóng dấu một bản sao của hình dạng rùa lên khung vẽ ở vị trí rùa hiện tại. Trả lại tem_id cho tem đó, có thể được sử dụng để xóa nó bằng cách gọi Ví dụ: >>> turtle.color("blue") >>> turtle.stamp() 11 >>> turtle.fd(50) turtle.clearstamp(stampid)Thông số
stampid - một số nguyên, phải là giá trị trả về của hàm Xóa stamp với stampid đã cho. Ví dụ: >>> turtle.position() (150.00,-0.00) >>> turtle.color("blue") >>> astamp = turtle.stamp() >>> turtle.fd(50) >>> turtle.position() (200.00,-0.00) >>> turtle.clearstamp(astamp) >>> turtle.position() (200.00,-0.00) turtle.clearstamps(n = None)Thông số n - một số nguyên (hoặc Xóa tất cả hoặc n stamp đầu hoặc cuối của turtle. Nếu n là >>> for i in range(8): ... turtle.stamp(); turtle.fd(30) 13 14 15 16 17 18 19 20 >>> turtle.clearstamps(2) >>> turtle.clearstamps(-2) >>> turtle.clearstamps() turtle.undo( )Hoàn tác (lặp đi lặp lại) những hành động cuối của turtle. Số lượng các hành động hoàn tác có sẵn được xác định bởi kích thước của undobuffer. Ví dụ: >>> for i in range(4): ... turtle.fd(50); turtle.lt(80) ... >>> for i in range(8): ... turtle.undo() turtle.speed(tốc độ = None)Thông số tốc độ - một số nguyên trong phạm vi 0..10 hoặc chuỗi tốc độ (xem bên dưới) Đặt tốc độ của rùa thành giá trị nguyên trong phạm vi 0..10. Nếu không có đối số được đưa ra, trả về tốc độ hiện tại. Nếu đầu vào là một số lớn hơn 10 hoặc nhỏ hơn 0.5 thì tốc độ được đặt thành 0. Tốc độ được ánh xạ tới các giá trị tốc độ như sau:
Tốc độ từ 1 đến 10 thực thi hoạt hình ngày càng nhanh hơn khi vẽ đường thẳng và quay rùa. Chú ý: tốc độ = 0 có nghĩa là không có hoạt hình diễn ra. forward/backward làm cho rùa nhảy và tương tự left/right làm cho rùa quay ngay lập tức. Ví dụ: >>> turtle.speed() 3 >>> turtle.speed('normal') >>> turtle.speed() 6 >>> turtle.speed(9) >>> turtle.speed() 9 Làm việc với vị trí của rùaturtle.position( ) hoặc turtle.pos( )Trả về vị trí hiện tại của rùa (x, y) (dưới dạng vector Ví dụ: >>> turtle.pos()
(440.00,-0.00)
turtle.towards(x, y = None)Thông số: x - một số hoặc một cặp / vectơ số hoặc một thể hiện rùa y - một số nếu x là một số, khác Trả lại góc giữa đường từ vị trí rùa đến vị trí được chỉ định bởi (x, y), vectơ hoặc rùa khác. Điều này phụ thuộc vào hướng bắt đầu của rùa và nó phụ thuộc vào chế độ "standard"/"world" hay "logo". Ví dụ: >>> turtle.goto(10, 10) >>> turtle.towards(0,0) 225.0 turtle.xcor( )Trả lại tọa độ x của rùa. Ví dụ: >>> turtle.home() >>> turtle.left(50) >>> turtle.forward(100) >>> turtle.pos() (64.28,76.60) >>> print(round(turtle.xcor(), 5)) 64.27876 turtle.ycor( )Trả lại tọa độ y của rùa. Ví dụ: >>> turtle.home() >>> turtle.left(60) >>> turtle.forward(100) >>> print(turtle.pos()) (50.00,86.60) >>> print(round(turtle.ycor(), 5)) 86.60254 turtle.heading( )Trả về
heading hiện tại của rùa (giá trị phụ thuộc vào chế độ rùa, xem Ví dụ: >>> turtle.home() >>> turtle.left(67) >>> turtle.heading() 67.0 turtle.distance(x, y = None)Thông số x - là một số, một cặp số pair/vector hoặc một đối tượng rùa y - một số nếu x là một số, ngược lại thì sẽ là Trả lại khoảng cách từ rùa đến (x, y), vectơ đã cho hoặc đối tượng rùa khác đã cho, theo đơn vị bước rùa. Ví dụ: >>> turtle.home() >>> turtle.distance(30,40) 50.0 >>> turtle.distance((30,40)) 50.0 >>> joe = Turtle() >>> joe.forward(77) >>> turtle.distance(joe) 77.0 Cài đặt đơn vị đoturtle.degrees(fullcircle = 360.0)Thông số fullcircle - một số Đặt đơn vị đo góc, tức là đặt giá trị degrees là một vòng tròn. Giá trị mặc định là 360 độ. Ví dụ: >>> turtle.home() >>> turtle.left(90) >>> turtle.heading() 90.0 Thay đổi đơn vị đo góc thành grad (còn được gọi là gon, grade, hoặc gradian và được tính bằng 1/100-th của góc phải) >>> turtle.degrees(400.0) >>> turtle.heading() 100.0 >>> turtle.degrees(360) >>> turtle.heading() 90.0 turtle.radians( )Đặt đơn vị đo góc thành radian, tương đương với Ví dụ: >>> turtle.home() >>> turtle.left(90) >>> turtle.heading() 90.0 >>> turtle.radians() >>> turtle.heading() 1.5707963267948966 Bút vẽCác phương thức vẽturtle.pendown( ) hoặc turtle.pd( ) hoặc turtle.down( )Đặt bút xuống để vẽ. turtle.penup( ) hoặc turtle.pu( ) hoặc turtle.up( )Nhấc bút lên để dừng vẽ. turtle.pensize(width = None) hoặc turtle.width(width = None )Tham số width - một số dương width dùng để thiết lập độ dày của nét vẽ thành width. Nếu resizemode được đặt thành "auto" và turtleshape là một đa giác, thì đa giác đó được vẽ với cùng độ dày nét vẽ. Nếu không có đối số được đưa ra thì sẽ trả về pensize hiện tại. Ví dụ: >>> turtle.pensize() 1 >>> turtle.pensize(10) # từ lúc này thì độ dày nét vẽ sẽ là 10 turtle.pen(pen = None, **pendict)Tham số pen - một từ điển với một số hoặc tất cả các từ khóa được liệt kê ở phía dưới đây pendict - một hoặc nhiều đối số từ khóa với các khóa được liệt kê bên dưới đây làm từ khóa Trả về hoặc đặt các thuộc tính của bút thành "pen-dictionary" với các cặp khóa/giá trị sau:
Từ điển này có thể được sử dụng làm đối số cho lời gọi tới Ví dụ: >>> turtle.pen(fillcolor="black", pencolor="red", pensize=10) >>> sorted(turtle.pen().items()) [('fillcolor', 'black'), ('outline', 1), ('pencolor', 'red'), ('pendown', True), ('pensize', 10), ('resizemode', 'noresize'), ('shearfactor', 0.0), ('shown', True), ('speed', 9), ('stretchfactor', (1.0, 1.0)), ('tilt', 0.0)] >>> penstate=turtle.pen() >>> turtle.color("yellow", "") >>> turtle.penup() >>> sorted(turtle.pen().items())[:3] [('fillcolor', ''), ('outline', 1), ('pencolor', 'yellow')] >>> turtle.pen(penstate, fillcolor="green") >>> sorted(turtle.pen().items())[:3] [('fillcolor', 'green'), ('outline', 1), ('pencolor', 'red')] turtle.isdown( )Trả lại Ví dụ: >>> turtle.penup() >>> turtle.isdown() False >>> turtle.pendown() >>> turtle.isdown() True Chỉnh màu cho bútturtle.pencolor(*args)Trả về hoặc thiết lập pencolor. Bốn định dạng đầu vào được cho phép:
|
Chế độ | Đầu rùa | 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) | chiều kim đồng hồ |
>>> mode("logo") # resets turtle heading to north
>>> mode()
'logo'
turtle.
colormode
( cmode = Không có )
Thông số
cmode - một trong các giá trị 1.0 hoặc 255
Trả về mã màu hoặc đặt thành 1.0 hoặc 255. Sau đó , các giá trị r , g , b của bộ ba màu phải nằm trong phạm vi 0 .. cmode .
>>> screen.colormode(1) >>> turtle.pencolor(240, 160, 80) Traceback (most recent call last): ... TurtleGraphicsError: bad color sequence: (240, 160, 80) >>> screen.colormode() 1.0 >>> screen.colormode(255) >>> screen.colormode() 255 >>> turtle.pencolor(240,160,80)
turtle.
getcanvas
()
Trả lại Canvas của TurtleScreen này. Hữu ích cho những người trong cuộc, những người biết phải làm gì với Tkinter Canvas.
>>> cv = screen.getcanvas() >>> cv
turtle.
getshapes
()
Trả về một danh sách tên của tất cả các hình dạng rùa hiện có.
>>> screen.getshapes()
['arrow', 'blank', 'circle', ..., 'turtle']
turtle.
register_shape
( tên , hình dạng = Không )
turtle.
addshape
( tên , hình
dạng = Không )
Có ba cách khác nhau để gọi hàm này:
Tên là tên của tệp gif và hình dạng là
None
: Cài đặt hình dạng hình ảnh tương ứng.>>>
>>> screen.register_shape("turtle.gif")
Ghi chú
Hình dạng hình ảnh không xoay khi xoay rùa, vì vậy chúng không hiển thị tiêu đề của rùa!
tên là một chuỗi tùy ý và hình dạng là một cặp các tọa độ: Cài đặt hình dạng đa giác tương ứng.
>>> screen.register_shape("triangle", ((5,-3), (0,5), (-5,-3)))
tên là một chuỗi tùy ý và hình dạng là một
Shape
đối tượng (hợp chất) : Cài đặt hình dạng hợp chất tương ứng.
Thêm một hình dạng rùa vào shapelist của TurtleScreen. Chỉ các hình dạng
được đăng ký như vậy có thể được sử dụng bằng cách ban hành lệnh shape(shapename)
.
turtle.
turtles
( )
Trả về danh sách rùa trên màn hình.
>>> for turtle in screen.turtles(): ... turtle.color("red")
turtle.
window_height
( )
Trả lại chiều cao của cửa sổ rùa.
>>>
>>> screen.window_height()
480
turtle.
window_width
( )
Trả lại chiều rộng của cửa sổ rùa.
>>>
>>> screen.window_width()
640
Phương pháp riêng cho màn hình, không được thừa kế từ TurtleScreen
turtle.
bye
( )
Đóng cửa sổ turtlegraphics.
turtle.
exitonclick
( )
Phương pháp Bind bye () để nhấp chuột trên Màn hình.
Nếu giá trị bằng cách sử dụng_IDLE trong bộ từ điển cấu hình là False
(giá trị mặc định), thì
cũng nhập mainloop. Ghi chú: Nếu IDLE với -n
switch (không subprocess) được sử dụng, giá trị này nên được đặt True
trong turtle.cfg
. Trong trường hợp này, mainloop của IDLE cũng hoạt động cho tập lệnh máy khách.
turtle.
setup
( Width = _CFG ["width"], height = _CFG ["height"], startx = _CFG ["leftright"], starty = _CFG ["topbottom"] )
Đặt kích thước và vị trí của cửa sổ chính. Giá trị
mặc định của các đối số được lưu trữ trong từ điển cấu hình và có thể được thay đổi thông qua một turtle.cfg
tệp.
Thông số
chiều rộng - nếu là số nguyên, kích thước tính bằng pixel, nếu nổi, một phần nhỏ của màn hình; mặc định là 50% màn hình
chiều cao - nếu là số nguyên, chiều cao tính bằng pixel, nếu nổi, một phần nhỏ của màn hình; mặc định là 75% màn hình
startx - nếu dương, vị trí bắt đầu bằng pixel từ cạnh trái của màn hình, nếu âm từ cạnh phải, nếu
None
, cửa sổ trung tâm theo chiều nganggiật mình - nếu dương, vị trí bắt đầu bằng pixel từ cạnh trên của màn hình, nếu âm từ cạnh dưới, nếu
None
, cửa sổ trung tâm theo chiều dọc
>>> screen.setup (width=200, height=200, startx=0, starty=0) >>> # sets window to 200x200 pixels, in upper left of screen >>> screen.setup(width=.75, height=0.5, startx=None, starty=None) >>> # sets window to 75% of screen by 50% of screen and centers
turtle.
title
( Tiêu đề )
Thông số
tiêu đề - một chuỗi được hiển thị trên thanh tiêu đề của cửa sổ đồ họa rùa
Đặt tiêu đề của cửa sổ rùa để chuẩn độ .
>>> screen.title("Welcome to the turtle zoo!")
Lớp Công
lớp turtle.
RawTurtle
( canvas )
lớp turtle.
RawPen
( canvas )
Thông số
vải - a tkinter.Canvas
, a ScrolledCanvas
hoặc a TurtleScreen
Tạo một con rùa. Con rùa có tất cả các phương pháp được mô tả ở trên là phương pháp của Rùa / RawTurtle.
lớp turtle.
Turtle
Lớp con của RawTurtle, có cùng giao diện nhưng dựa trên
một Screen
đối tượng mặc định được tạo tự động khi cần lần đầu tiên.
lớp turtle.
TurtleScreen
( cv )
Thông số
cv - atkinter.Canvas
Cung cấp các phương pháp định hướng màn hình như setbg()
vv được mô tả ở trên.
lớp turtle.
Screen
Phân lớp của TurtleScreen, với bốn phương thức được thêm vào .
lớp turtle.
ScrolledCanvas
( bậc thầy )
Thông số
master - một số tiện ích Tkinter để chứa ScrolledCanvas, tức là một Tkinter-canvas có thêm thanh cuộn
Được sử dụng bởi Lớp màn hình, do đó tự động cung cấp ScrolledCanvas làm sân chơi cho rùa.
lớp turtle.
Shape
( type_ , dữ liệu )
Thông số
type_ - một trong các chuỗi đa giác
Mô hình cấu trúc dữ liệu hình dạng. Các cặp phải tuân theo đặc điểm kỹ thuật này:(type_, data)
kiểu_ | dữ liệu |
---|---|
Đa giác | một đa giác-tuple, tức là một cặp các tọa độ |
Hình ảnh | một hình ảnh (trong hình thức này chỉ được sử dụng nội bộ!) |
Hợp chất |
|
addcomponent
( Nhiều , điền , đề cương = Không )
Thông số
nhiều - một đa giác, tức là một tuple của cặp số
tô màu - một màu poly sẽ được lấp đầy
phác thảo - một màu cho phác thảo của poly (nếu có)
Thí dụ:
>>> poly = ((0,0),(10,-5),(0,10),(-10,-5)) >>> s = Shape("compound") >>> s.addcomponent(poly, "red", "blue") >>> # ... add more components and then use register_shape()
Có thể bạn quan tâm
Xem hình dạng hợp chất .
lớp turtle.
Vec2D
( x , y )
Một lớp vectơ hai chiều, được sử dụng làm lớp trợ giúp để thực hiện đồ họa rùa. Có thể hữu ích cho các chương trình đồ họa rùa quá. Bắt nguồn từ tuple, vì vậy một vectơ là một tuple!
Cung cấp (cho a , b vectơ, số k ):
a + b
bổ sung vectora - b
phép trừ vectora * b
sản phẩm bên trongk * a
và nhân với vô hướnga * k
abs(a)
giá trị tuyệt đối của mộta.rotate(angle)
Vòng xoay
Trợ giúp và cấu hình
Làm thế nào để sử dụng sự giúp đỡ
Các phương thức công khai của các lớp Màn hình và Rùa được ghi lại rộng rãi thông qua các tài liệu. Vì vậy, chúng có thể được sử dụng làm trợ giúp trực tuyến thông qua các tiện ích trợ giúp của Python:
Khi sử dụng IDLE, các chú giải công cụ hiển thị chữ ký và dòng đầu tiên của các tài liệu được gõ trong các lệnh gọi hàm / phương thức.
Gọi
help()
các phương thức hoặc hàm hiển thị các tài liệu:>>>
>>> help(Screen.bgcolor) Help on method bgcolor in module turtle: bgcolor(self, *args) unbound turtle.Screen method Set or return backgroundcolor of the TurtleScreen. Arguments (if given): a color string or three numbers in the range 0..colormode or a 3-tuple of such numbers. >>> screen.bgcolor("orange") >>> screen.bgcolor() "orange" >>> screen.bgcolor(0.5,0,0.5) >>> screen.bgcolor() "#800080" >>> help(Turtle.penup) Help on method penup in module turtle: penup(self) unbound turtle.Turtle method Pull the pen up -- no drawing when moving. Aliases: penup | pu | up No argument >>> turtle.penup()
Các tài liệu của các hàm xuất phát từ các phương thức có dạng được sửa đổi:
>>>
>>> help(bgcolor) Help on function bgcolor in module turtle: bgcolor(*args) Set or return backgroundcolor of the TurtleScreen. Arguments (if given): a color string or three numbers in the range 0..colormode or a 3-tuple of such numbers. Example:: >>> bgcolor("orange") >>> bgcolor() "orange" >>> bgcolor(0.5,0,0.5) >>> bgcolor() "#800080" >>> help(penup) Help on function penup in module turtle: penup() Pull the pen up -- no drawing when moving. Aliases: penup | pu | up No argument Example: >>> penup()
Các tài liệu đã sửa đổi này được tạo tự động cùng với các định nghĩa hàm xuất phát từ các phương thức tại thời điểm nhập.
Bản dịch của docstrings sang ngôn ngữ khác nhau
Có một tiện ích để tạo một từ điển các khóa trong đó là các tên phương thức và các giá trị trong đó là các tài liệu về các phương thức công khai của các lớp Màn hình và Rùa.
turtle.
write_docstringdict
( Tên tệp = "rùa_docopesdict" )
Thông số
tên tệp - một chuỗi, được sử dụng làm tên tệp
Tạo và viết từ điển chuỗi vào tập lệnh Python với tên tệp đã cho. Hàm này phải được gọi một cách rõ ràng (nó không được sử dụng bởi các lớp đồ họa rùa). Từ điển doc
Chuỗi sẽ được ghi vào tập lệnh Python . Nó được dự định để phục vụ như là một khuôn mẫu để dịch các tài liệu sang các ngôn ngữ khác nhau.filename.py
Nếu bạn (hoặc sinh viên của bạn) muốn sử dụng turtle
với trợ giúp trực tuyến bằng ngôn ngữ mẹ đẻ của bạn, bạn phải dịch các tài liệu và lưu tệp kết quả như ví dụ turtle_docstringdict_german.py
.
Nếu bạn có một mục thích hợp trong turtle.cfg
tệp của mình , từ điển này sẽ được đọc tại thời điểm nhập và sẽ thay thế các tài liệu tiếng Anh ban đầu.
Tại thời điểm viết bài này có từ điển docopes bằng tiếng Đức và tiếng Ý. (Các yêu cầu xin vui lòng để glingl @ AON . Tại .)
Cách cấu hình Màn hình và Rùa
Cấu hình mặc định tích hợp bắt chước hình thức và hành vi của mô-đun rùa cũ để giữ khả năng tương thích tốt nhất với nó.
Nếu bạn muốn sử dụng một cấu hình khác phản ánh tốt hơn các tính năng của mô-đun này hoặc phù hợp hơn với nhu cầu của bạn, ví dụ để sử dụng trong lớp học, bạn có thể chuẩn bị một tệp cấu hình turtle.cfg
sẽ được đọc tại thời điểm nhập và sửa đổi cấu hình theo cài đặt của nó.
Cấu hình được xây dựng sẽ tương ứng với rùa.cfg sau:
width = 0.5 height = 0.75 leftright = None topbottom = None canvwidth = 400 canvheight = 300 mode = standard colormode = 1.0 delay = 10 undobuffersize = 1000 shape = classic pencolor = black fillcolor = black resizemode = noresize visible = True language = english exampleturtle = turtle examplescreen = screen title = Python Turtle Graphics using_IDLE = False
Giải thích ngắn về các mục được chọn:
Bốn dòng đầu tiên tương ứng với các đối số của
Screen.setup()
phương thức.Dòng 5 và 6 tương ứng với các đối số của phương thức
Screen.screensize()
.hình dạng có thể là bất kỳ hình dạng tích hợp nào, ví dụ: mũi tên, rùa, v.v ... Để biết thêm thông tin hãy thử
help(shape)
.Nếu bạn muốn sử dụng không có fillcolor (tức là làm cho rùa trong suốt), bạn phải viết (nhưng tất cả các chuỗi không trống phải không có dấu ngoặc kép trong tệp cfg).
fillcolor = ""
Nếu bạn muốn phản ánh trạng thái của rùa, bạn phải sử dụng .
resizemode = auto
Nếu bạn đặt ví dụ: docopesdict sẽ được tải tại thời điểm nhập (nếu có trên đường dẫn nhập, ví dụ: trong cùng thư mục với .
language = italian
turtle_docstringdict_italian.py
turtle
Các mục thipleturtle và màn hình mẫu xác định tên của các đối tượng này khi chúng xảy ra trong các tài liệu. Việc chuyển đổi các tài liệu phương thức thành các tài liệu chức năng sẽ xóa các tên này khỏi các tài liệu.
using_IDLE : Đặt tùy chọn này thành
True
nếu bạn thường xuyên làm việc với IDLE và công tắc -n của nó (không có quy trình con nào). Điều này sẽ ngăn chặnexitonclick()
để vào mainloop.
Có thể có một turtle.cfg
tệp trong thư mục turtle
được lưu trữ và một tệp bổ
sung trong thư mục làm việc hiện tại. Cái sau sẽ ghi đè cài đặt của cái đầu tiên.
Thư mục Lib/turtledemo
chứa một turtle.cfg
tập tin. Bạn có thể nghiên cứu nó như một ví dụ và xem hiệu ứng của nó khi chạy các bản demo (tốt nhất không phải từ bên trong trình xem demo).
turtledemo- Kịch bản demo
Các turtledemo
gói bao gồm một tập hợp các bản demo kịch bản. Các tập lệnh này có thể được chạy và xem bằng trình xem demo được cung cấp như sau:
Ngoài ra, bạn có thể chạy các kịch bản demo riêng lẻ. Ví dụ,
python -m turtledemo.bytedesign
Thư mục turtledemo
gói chứa:
Một trình xem demo
__main__.py
có thể được sử dụng để xem mã nguồn của các tập lệnh và chạy chúng cùng một lúc.Nhiều tập lệnh thể hiện các tính năng khác nhau của
turtle
mô-đun. Ví dụ có thể được truy cập thông qua menu Ví dụ. Họ cũng có thể được chạy độc lập.Một
turtle.cfg
tệp dùng làm ví dụ về cách viết và sử dụng các tệp đó.
Các kịch bản demo là:
Tên | Sự miêu tả | Đặc trưng |
---|---|---|
bytedesign | mô hình đồ họa rùa cổ điển phức tạp |
|
sự hỗn loạn | đồ thị Động lực học Verhulst, cho thấy tính toán của máy tính đôi khi có thể tạo ra kết quả trái với mong đợi thông thường | tọa độ thế giới |
đồng hồ | đồng hồ analog hiển thị thời gian của máy tính của bạn | rùa như kim đồng hồ, ontimer |
colormixer | thử nghiệm với r, g, b |
|
rừng | 3 cây đầu tiên | ngẫu nhiên |
fractalcurves | Đường cong Hilbert & Koch | đệ quy |
lindenmayer | ethnomathatures (kolams Ấn Độ) | Hệ thống L |
Minimal_hanoi | Tháp Hà Nội | Rùa hình chữ nhật như đĩa Hà Nội (hình dạng, hình dạng) |
nó | chơi trò chơi nim cổ điển với ba đống gậy chống lại máy tính. | rùa như nimsticks, điều khiển sự kiện (chuột, bàn phím) |
Sơn | chương trình vẽ siêu tối giản |
|
Sự thanh bình | tiểu học | rùa: ngoại hình và hoạt hình |
dương vật | ốp lát định kỳ với diều và phi tiêu |
|
hành tinh_and_moon | mô phỏng hệ thống hấp dẫn | hình dạng hợp chất, |
round_dance | rùa nhảy xoay theo chiều ngược nhau | hình dạng hợp chất, hình dạng bản sao, độ nghiêng, get_shapepoly, cập nhật |
sắp xếp_animate | trình diễn trực quan các phương pháp phân loại khác nhau | căn chỉnh đơn giản, ngẫu nhiên |
cây | một (đồ họa) chiều rộng cây đầu tiên (sử dụng máy phát điện) |
|
hai_canvases | Thiết kế đơn giản | rùa trên hai bức tranh |
wikipedia | một mô hình từ bài viết trên wikipedia về đồ họa rùa |
|
âm dương | một ví dụ cơ bản khác |
|
Chúc vui vẻ!
Thay đổi kể từ khi Python 2.6
Các phương pháp
Turtle.tracer()
,Turtle.window_width()
vàTurtle.window_height()
đã được loại bỏ. Các phương thức có tên và chức năng này hiện chỉ khả dụng dưới dạng phương thứcScreen
. Các chức năng có nguồn gốc từ những vẫn còn có sẵn. (Trên thực tế đã có trong Python 2.6, các phương thức này chỉ là các bản sao củaTurtleScreen
/Screen
-method tương ứng .)Phương pháp
Turtle.fill()
đã được loại bỏ. Hành vi củabegin_fill()
vàend_fill()
đã thay đổi một chút: bây giờ mọi quy trình điền phải được hoàn thành bằng mộtend_fill()
cuộc gọi.Một phương pháp
Turtle.filling()
đã được thêm vào. Nó trả về một giá trị boolean:True
nếu quá trình điền đang diễn ra,False
nếu không. Hành vi này tương ứng với mộtfill()
cuộc gọi không có đối số trong Python 2.6.
Thay đổi kể từ khi Python 3.0
Các phương pháp
Turtle.shearfactor()
,Turtle.shapetransform()
vàTurtle.get_shapepoly()
đã được thêm vào. Do đó, toàn bộ các biến đổi tuyến tính thông thường hiện có sẵn để biến đổi hình dạng rùa.Turtle.tiltangle()
đã được cải tiến về chức năng: bây giờ nó có thể được sử dụng để lấy hoặc đặt độ nghiêng.Turtle.settiltangle()
đã bị phản đốiPhương thức
Screen.onkeypress()
này đã được thêm vào như là một bổ sungScreen.onkey()
mà trên thực tế liên kết các hành động với sự kiện keyrelease. Theo đó, cái sau có một bí danh :Screen.onkeyrelease()
.Phương pháp
Screen.mainloop()
đã được thêm vào. Vì vậy, khi chỉ làm việc với các đối tượng Màn hình và Rùa, người ta không được nhậpmainloop()
thêm nữa.Hai phương thức nhập liệu đã được thêm vào
Screen.textinput()
vàScreen.numinput()
. Các hộp thoại đầu vào bật lên và trả về chuỗi và số tương ứng.Hai tập lệnh mẫu
tdemo_nim.py
vàtdemo_round_dance.py
đã được thêm vàoLib/turtledemo
thư mục.
Copied !!!