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.

def rectangle(hor,ver,col):
    t.pendown() #tạo con trỏ
    t.pensize(1) #kích cỡ
    t.color(col)
    t.begin_fill()
    for counter in range(1,3): #đây là một vòng lặp (loop)
        t.forward(hor)
        t.right(90)
        t.forward(ver)
        t.right(90)
    t.end_fill()
    t.penup()

Có bốn hướng có thể di chuyển vào:

  • Ở đằng trước
  • Phía sau
  • Trái
  • Đúng

Con trỏ di chuyển .forward()hoặc .backward()theo hướng mà nó phải đối mặt. Bạn có thể thay đổi hướng này bằng cách xoay nó .left()hoặc .right()theo một mức độ nhất định. Bạn có thể thử từng lệnh như vậy:

>>> t.right(90)
>>> t.forward(100)
>>> t.left(90)
>>> t.backward(100)

3. Thiết lập con trỏ vẽ

t.penup()
t.speed('slow') #Tốc độ vẽ của con trỏ
t.bgcolor('Dodger blue')
ti.sleep(10)
t.hideturtle()

4. Code vẽ từng bộ phận

#Vẽ bàn chân

t.goto(-100,-150)
rectangle(50,20,'blue')
t.goto(-30,-150)
rectangle(50,20,'blue')

#Vẽ chân

t.goto(-25,-50)
rectangle(15,100,'grey')
t.goto(-55,-50)
rectangle(-15,100,'grey')

#Vẽ thân

t.goto(-90,100)
rectangle(100,150,'red')

#Vẽ tay

t.goto(-150,70)
rectangle(60,15,'grey')
t.goto(-150,110)
rectangle(15,40,'grey')
t.goto(10,70)
rectangle(60,15,'grey')
t.goto(55,110)
rectangle(15,40,'grey')

#Vẽ cổ

t.goto(-50,120)
rectangle(15,20,'grey')

#Vẽ đầu

t.goto(-85,170)
rectangle(80,50,'red')
t.goto(-60,160)

#Vẽ mắt miệng:
rectangle(30,10,'white')
t.goto(-60,160)
rectangle(5,5,'black')
t.goto(-45,155)
rectangle(5,5,'black')
t.goto(-65,135)
t.right(5)
rectangle(40,5,'black')

#Vẽ bàn tay:

t.goto(-155,130)
rectangle(25,25,'green')
t.goto(-147,130)
rectangle(10,15,t.bgcolor())
t.goto(50,130)
rectangle(25,25,'green')
t.goto(58,130)
rectangle(10,15,t.bgcolor())

Code đầy đủ:

import turtle as t
import time as ti

def rectangle(hor,ver,col):
    t.pendown() #tạo con trỏ
    t.pensize(1)
    t.color(col)
    t.begin_fill()
    for counter in range(1,3):
        t.forward(hor)
        t.right(90)
        t.forward(ver)
        t.right(90)
    t.end_fill()
    t.penup()
t.penup()
t.speed('slow')
t.bgcolor('Dodger blue')

t.goto(-100,-150)
rectangle(50,20,'blue')
t.goto(-30,-150)
rectangle(50,20,'blue')

t.goto(-25,-50)
rectangle(15,100,'grey')
t.goto(-55,-50)
rectangle(-15,100,'grey')

t.goto(-90,100)
rectangle(100,150,'red')

t.goto(-150,70)
rectangle(60,15,'grey')
t.goto(-150,110)
rectangle(15,40,'grey')
t.goto(10,70)
rectangle(60,15,'grey')
t.goto(55,110)
rectangle(15,40,'grey')

t.goto(-50,120)
rectangle(15,20,'grey')
t.goto(-85,170)
rectangle(80,50,'red')
t.goto(-60,160)
rectangle(30,10,'white')
t.goto(-60,160)
rectangle(5,5,'black')
t.goto(-45,155)
rectangle(5,5,'black')
t.goto(-65,135)
t.right(5)
rectangle(40,5,'black')
t.goto(-155,130)
rectangle(25,25,'green')
t.goto(-147,130)
rectangle(10,15,t.bgcolor())
t.goto(50,130)
rectangle(25,25,'green')
t.goto(58,130)
rectangle(10,15,t.bgcolor())
t.hideturtle()
ti.sleep(10)
t.hideturtle()

Thành quả:

Hướng dẫn python turtle graphics

Hướng dẫn python turtle graphics
  • Đào tạo
  • Lập trình
  • Web
  • FW-CMS
  • Video
  • Video1
  • Other
  • DataBase
  • News
Hướng dẫn python turtle graphics


Các khóa học miễn phí qua video:
Lập trình C Java C# SQL Server PHP HTML5-CSS3-JavaScript

Khai báo thư viện và tạo đối tượng của Turtle

Khai báo thư viện:

from turtle import *

Tạo đối tượng của Turtle

turtle = Turtle()

Các phương thức chuyển động của rùa

turtle.forward(khoảng cách) hoặc turtle.fd(khoảng cách)

Thông số

khoảng cách  - một số (số nguyên hoặc số float)

Di chuyển rùa về phía trước một khoảng cách xác định (tính bằng pixel) theo hướng rùa đang hướng tới.

Ví dụ:

>>> turtle.position()
(0.00,0.00)
>>> turtle.forward(25)
>>> turtle.position()
(25.00,0.00)
>>> turtle.forward(-75)
>>> turtle.position()
(-50.00,0.00)

turtle.back(khoảng cách) hoặc turtle.bk(khoảng cách) hoặc turtle.backward(khoảng cách)

Thông số

khoảng cách  - một con số

Di chuyển rùa về phía sau một khoảng cách, ngược với hướng rùa đang đi.

Ví dụ:

>>> turtle.position()
(0.00,0.00)
>>> turtle.backward(30)
>>> turtle.position()
(-30.00,0.00)

turtle.right(góc) hoặc turtle.rt(góc)

Thông số

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

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

>>> turtle.heading()
22.0
>>> turtle.right(45)
>>> turtle.heading()
337.0

turtle.left(góc) hoặc turtle.lt(góc)

Thông số

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

Xoay trái rùa một góc. (Đơn vị theo độ mặc định, nhưng có thể được đặt lại bằng hàm degrees() và  radians()). Hướng góc phụ thuộc vào chế độ rùa.

Ví dụ:

>>> turtle.heading()
22.0
>>> turtle.left(45)
>>> turtle.heading()
67.0

turtle.goto(x, y = None) hoặc turtle.setpos(x, y = None) hoặc turtle.setposition(x, y = None)

Thông số:

    x - một số hoặc một cặp/vectơ số

    y - một số hoặc None

Nếu y là None, x phải là một cặp tọa độ hoặc một Vec2D (ví dụ như được trả về bởi pos()).

Di chuyển rùa đến một vị trí tuyệt đối. Nếu bút được xuống đặt xuống thì sẽ vẽ đường thẳng.

Ví dụ:

 >>> tp = turtle.pos()
 >>> tp
 (0.00,0.00)
 >>> turtle.setpos(60,30)
 >>> turtle.pos()
 (60.00,30.00)
 >>> turtle.setpos((20,80))
 >>> turtle.pos()
 (20.00,80.00)
 >>> turtle.setpos(tp)
 >>> turtle.pos()
 (0.00,0.00)

turtle.setx(x)

Thông số:

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

Đặt hoành độ của rùa thành x, giữ nguyên tung độ.

Ví dụ:

>>> turtle.position()
(0.00,240.00)
>>> turtle.setx(10)
>>> turtle.position()
(10.00,240.00)

turtle.sety(y) 

Thông số

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

Đặt tung độ của rùa thành y, giữ nguyên hoành độ.

Ví dụ:

>>> turtle.position()
(0.00,40.00)
>>> turtle.sety(-10)
>>> turtle.position()
(0.00,-10.00)

turtle.setheading(to_angle)  hoặc turtle.seth(to_angle)

Thông số:

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

Đặt hướng của rùa thành to_angle. Dưới đây là một số hướng phổ biến theo độ:

chế độ căn bản

chế độ logo

0 - đông

0 - bắc

90 - bắc

90 - đông

180 - tây

180 - nam

270 - nam

270 - tây

Ví dụ:

>>> turtle.setheading(90)
>>> turtle.heading()
90.0

turtle.home( ) 

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

Ví dụ:

>>> turtle.heading()
90.0
>>> turtle.position()
(0.00,-10.00)
>>> turtle.home()
>>> turtle.position()
(0.00,0.00)
>>> turtle.heading()
0.0

turtle.circle(bán_kính, phạm_vi = None, bước = None) 

Thông số:

    bán_kính - một số

    phạm_vi - một số (hoặc None)

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

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

Vì vòng tròn được xấp xỉ bởi một đa giác thông thường được ghi, nên bước sẽ xác định số bước sẽ sử dụng. Nếu không được đưa ra, nó sẽ được tính toán tự động. Có thể được sử dụng để vẽ đa giác thông thường.

Ví dụ:

>>> turtle.home()
>>> turtle.position()
(0.00,0.00)
>>> turtle.heading()
0.0
>>> turtle.circle(50)
>>> turtle.position()
(-0.00,0.00)
>>> turtle.heading()
0.0
>>> turtle.circle(120, 180)  # draw a semicircle
>>> turtle.position()
(0.00,240.00)
>>> turtle.heading()
180.0

turtle.dot(kích_thước = None, "color") 

Thông số:

    kích_thước - một số nguyên >= 1 hoặc None

    color - một chuỗi màu hoặc một bộ màu số

Vẽ một chấm tròn có đường kính là kích_thước, có màu là color. Nếu kích_thước không được đưa ra thì các giá trị penize+4 và 2*penize được sử dụng.

Ví dụ:

>>> turtle.home()
>>> turtle.dot()
>>> turtle.fd(50); turtle.dot(20, "blue"); turtle.fd(50)
>>> turtle.position()
(100.00,-0.00)
>>> turtle.heading()
0.0

turtle.stamp( ) 

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

Ví dụ:

>>> turtle.color("blue")
>>> turtle.stamp()
11
>>> turtle.fd(50)

turtle.clearstamp(stampid) 

Thông số

    stampid - một số nguyên, phải là giá trị trả về của hàm stamp().

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

Ví dụ:

>>> turtle.position()
(150.00,-0.00)
>>> turtle.color("blue")
>>> astamp = turtle.stamp()
>>> turtle.fd(50)
>>> turtle.position()
(200.00,-0.00)
>>> turtle.clearstamp(astamp)
>>> turtle.position()
(200.00,-0.00)

turtle.clearstamps(n = None) 

Thông số

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

Xóa tất cả hoặc n stamp đầu hoặc cuối của turtle. Nếu n là None, xóa tất cả các stamp, nếu n > 0 xóa n stamp đầu tiên, nếu n <0 xóa n stamp cuối cùng.

>>> for i in range(8):
...     turtle.stamp(); turtle.fd(30)
13
14
15
16
17
18
19
20
>>> turtle.clearstamps(2)
>>> turtle.clearstamps(-2)
>>> turtle.clearstamps()

turtle.undo( ) 

Hoàn tác (lặp đi lặp lại) những hành động cuối của turtle. Số lượng các hành động hoàn tác có sẵn được xác định bởi kích thước của undobuffer.

Ví dụ:

>>> for i in range(4):
...     turtle.fd(50); turtle.lt(80)
...
>>> for i in range(8):
...     turtle.undo()

turtle.speed(tốc độ = None) 

Thông số

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

Đặt tốc độ của rùa thành giá trị nguyên trong phạm vi 0..10. Nếu không có đối số được đưa ra, trả về tốc độ hiện tại.

Nếu đầu vào là một số lớn hơn 10 hoặc nhỏ hơn 0.5 thì tốc độ được đặt thành 0. Tốc độ được ánh xạ tới các giá trị tốc độ như sau:

  • “fastest”: 0

  • “fast”: 10

  • “normal”: 6

  • “slow”: 3

  • “slowest”: 1

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

Chú ý: tốc độ = 0 có nghĩa là không có hoạt hình diễn ra. forward/backward làm cho rùa nhảy và tương tự left/right làm cho rùa quay ngay lập tức.

Ví dụ:

>>> turtle.speed()
3
>>> turtle.speed('normal')
>>> turtle.speed()
6
>>> turtle.speed(9)
>>> turtle.speed()
9

Làm việc với vị trí của rùa

turtle.position( )  hoặc turtle.pos( ) 

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

Ví dụ:

>>> turtle.pos()
(440.00,-0.00)

turtle.towards(x, y = None) 

Thông số:

    x - một số hoặc một cặp / vectơ số hoặc một thể hiện rùa

    y - một số nếu x là một số, khácNone

Trả lại góc giữa đường từ vị trí rùa đến vị trí được chỉ định bởi (x, y), vectơ hoặc rùa khác. Điều này phụ thuộc vào hướng bắt đầu của rùa và nó phụ thuộc vào chế độ "standard"/"world" hay "logo".

Ví dụ:

>>> turtle.goto(10, 10)
>>> turtle.towards(0,0)
225.0

turtle.xcor( ) 

Trả lại tọa độ x của rùa.

Ví dụ:

>>> turtle.home()
>>> turtle.left(50)
>>> turtle.forward(100)
>>> turtle.pos()
(64.28,76.60)
>>> print(round(turtle.xcor(), 5))
64.27876

turtle.ycor( ) 

Trả lại tọa độ y của rùa.

Ví dụ:

>>> turtle.home()
>>> turtle.left(60)
>>> turtle.forward(100)
>>> print(turtle.pos())
(50.00,86.60)
>>> print(round(turtle.ycor(), 5))
86.60254

turtle.heading( ) 

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

Ví dụ:

>>> turtle.home()
>>> turtle.left(67)
>>> turtle.heading()
67.0

turtle.distance(x, y = None)

Thông số

    x - là một số, một cặp số pair/vector hoặc một đối tượng rùa

    y - một số nếu x là một số, ngược lại thì sẽ là None

Trả lại khoảng cách từ rùa đến (x, y), vectơ đã cho hoặc đối tượng rùa khác đã cho, theo đơn vị bước rùa.

Ví dụ:

>>> turtle.home()
>>> turtle.distance(30,40)
50.0
>>> turtle.distance((30,40))
50.0
>>> joe = Turtle()
>>> joe.forward(77)
>>> turtle.distance(joe)
77.0

Cài đặt đơn vị đo

turtle.degrees(fullcircle = 360.0)

Thông số

fullcircle - một số

Đặt đơn vị đo góc, tức là đặt giá trị degrees là một vòng tròn. Giá trị mặc định là 360 độ.

Ví dụ:

>>> turtle.home()
>>> turtle.left(90)
>>> turtle.heading()
90.0

Thay đổi đơn vị đo góc thành grad (còn được gọi là gon,
grade, hoặc gradian và được tính bằng 1/100-th của góc phải)
>>> turtle.degrees(400.0)
>>> turtle.heading()
100.0
>>> turtle.degrees(360)
>>> turtle.heading()
90.0

turtle.radians( ) 

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

Ví dụ:

>>> turtle.home()
>>> turtle.left(90)
>>> turtle.heading()
90.0
>>> turtle.radians()
>>> turtle.heading()
1.5707963267948966

Bút vẽ

Các phương thức vẽ

turtle.pendown( )  hoặc turtle.pd( )  hoặc turtle.down( ) 

Đặt bút xuống để vẽ.

turtle.penup( )  hoặc turtle.pu( )  hoặc turtle.up( ) 

Nhấc bút lên để dừng vẽ.

turtle.pensize(width = None)  hoặc turtle.width(width = None ) 

Tham số

    width - một số dương

width dùng để thiết lập độ dày của nét vẽ thành width. Nếu resizemode được đặt thành "auto" và turtleshape là một đa giác, thì đa giác đó được vẽ với cùng độ dày nét vẽ. Nếu không có đối số được đưa ra thì sẽ trả về pensize hiện tại.

Ví dụ:

>>> turtle.pensize()
1
>>> turtle.pensize(10)   # từ lúc này thì độ dày nét vẽ sẽ là 10

turtle.pen(pen = None, **pendict)

Tham số

    pen - một từ điển với một số hoặc tất cả các từ khóa được liệt kê ở phía dưới đây

    pendict - một hoặc nhiều đối số từ khóa với các khóa được liệt kê bên dưới đây làm từ khóa

Trả về hoặc đặt các thuộc tính của bút thành "pen-dictionary" với các cặp khóa/giá trị sau:

  • “shown”: True/False
  • “pendown”: True/False
  • “pencolor”: color-string hoặc color-tuple
  • “fillcolor”: color-string hoặc color-tuple
  • “pensize”: số dượng
  • “speed”: số trong khoảng 0..10
  • “resizemode”: “auto” hoặc “user” hoặc “noresize”
  • “stretchfactor”: (số dượng, số dương)
  • “outline”: số dương
  • “tilt”: số

Từ điển này có thể được sử dụng làm đối số cho lời gọi tới pen() để khôi phục trạng thái bút cũ. Hơn nữa, một hoặc nhiều thuộc tính này có thể được cung cấp dưới dạng đối số từ khóa. Điều này có thể được sử dụng để đặt một số thuộc tính bút trong một câu lệnh.

Ví dụ:

>>> turtle.pen(fillcolor="black", pencolor="red", pensize=10)
>>> sorted(turtle.pen().items())
[('fillcolor', 'black'), ('outline', 1), ('pencolor', 'red'),
 ('pendown', True), ('pensize', 10), ('resizemode', 'noresize'),
 ('shearfactor', 0.0), ('shown', True), ('speed', 9),
 ('stretchfactor', (1.0, 1.0)), ('tilt', 0.0)]
>>> penstate=turtle.pen()
>>> turtle.color("yellow", "")
>>> turtle.penup()
>>> sorted(turtle.pen().items())[:3]
[('fillcolor', ''), ('outline', 1), ('pencolor', 'yellow')]
>>> turtle.pen(penstate, fillcolor="green")
>>> sorted(turtle.pen().items())[:3]
[('fillcolor', 'green'), ('outline', 1), ('pencolor', 'red')]

turtle.isdown( ) 

Trả lại True nếu bút được đặt, False nếu ngược lại.

Ví dụ:

>>> turtle.penup()
>>> turtle.isdown()
False
>>> turtle.pendown()
>>> turtle.isdown()
True

Chỉnh màu cho bút

turtle.pencolor(*args) 

Trả về hoặc thiết lập pencolor.

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

pencolor()

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

pencolor(colorstring)

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

pencolor((r, g, b))

Đặt pencolor thành màu RGB được biểu thị bằng tuple của r , g và b. Mỗi r , g và b phải nằm trong phạm vi 0..colormode, trong đó colormode là một trong các số từ 1.0 đến 255 (xem colormode()).

pencolor(r, g, b)

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

Nếu turtleshape là một đa giác thì đường viền của đa giác đó được vẽ bằng pencolor mới được đặt.

Ví dụ:

 >>> colormode()
 1.0
 >>> turtle.pencolor()
 'red'
 >>> turtle.pencolor("brown")
 >>> turtle.pencolor()
 'brown'
 >>> tup = (0.2, 0.8, 0.55)
 >>> turtle.pencolor(tup)
 >>> turtle.pencolor()
 (0.2, 0.8, 0.5490196078431373)
 >>> colormode(255)
 >>> turtle.pencolor()
 (51.0, 204.0, 140.0)
 >>> turtle.pencolor('#32c18f')
 >>> turtle.pencolor()
 (50.0, 193.0, 143.0)

turtle.fillcolor(*args

Trả về hoặc thiết lập fillcolor.

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

fillcolor()

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

fillcolor(colorstring)

Set fillcolor để colorstring , mà là một đặc điểm kỹ thuật Tk màu chuỗi, chẳng hạn như "red""yellow"hoặc "#33cc8c".

fillcolor((r, g, b))

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

fillcolor(r, g, b)

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

Nếu turt Meatape là một đa giác, phần bên trong của đa giác đó được vẽ bằng fillcolor mới được thiết lập.

 >>> turtle.fillcolor("violet")
 >>> turtle.fillcolor()
 'violet'
 >>> turtle.pencolor()
 (50.0, 193.0, 143.0)
 >>> turtle.fillcolor((50, 193, 143))  # Integers, not floats
 >>> turtle.fillcolor()
 (50.0, 193.0, 143.0)
 >>> turtle.fillcolor('#ffffff')
 >>> turtle.fillcolor()
 (255.0, 255.0, 255.0)

turtle.color(*args

Trả lại hoặc đặt pencolor và fillcolor.

Một số định dạng đầu vào được cho phép. Họ sử dụng 0 đến 3 đối số như sau:

color()

Trả về pencolor hiện tại và fillcolor hiện tại dưới dạng một cặp chuỗi đặc tả màu hoặc bộ dữ liệu được trả về bởi pencolor()và fillcolor().

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

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

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

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

Nếu turt Meatape là một đa giác, phác thảo và bên trong của đa giác đó được vẽ bằng các màu mới được thiết lập.

 >>> turtle.color("red", "green")
 >>> turtle.color()
 ('red', 'green')
 >>> color("#285078", "#a0c8f0")
 >>> color()
 ((40.0, 80.0, 120.0), (160.0, 200.0, 240.0))

Xem thêm: Phương pháp màn hình colormode().

điền 

turtle.filling

Trả lại fillstate ( Truenếu điền, Falsekhác).

 >>> turtle.begin_fill()
 >>> if turtle.filling():
 ...    turtle.pensize(5)
 ... else:
 ...    turtle.pensize(3)

turtle.begin_fill

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

turtle.end_fill

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

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

>>> turtle.color("black", "red")
>>> turtle.begin_fill()
>>> turtle.circle(80)
>>> turtle.end_fill()

More vẽ kiểm soát 

turtle.reset

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

>>> turtle.goto(0,-22)
>>> turtle.left(100)
>>> turtle.position()
(0.00,-22.00)
>>> turtle.heading()
100.0
>>> turtle.reset()
>>> turtle.position()
(0.00,0.00)
>>> turtle.heading()
0.0

turtle.clear

Xóa bản vẽ của rùa khỏi màn hình. Đừng di chuyển rùa. Trạng thái và vị trí của rùa cũng như bản vẽ của các loài rùa khác không bị ảnh hưởng.

turtle.writeArg , di chuyển = False , align = "left" , font = ( "Arial" , 8 , "bình thường") 

Thông số

  • arg - đối tượng được ghi vào TurtleScreen

  • di chuyển - Đúng / Sai

  • căn chỉnh - một trong các chuỗi bên trái, trung tâm trực tiếp hoặc bên phải

  • phông chữ - một bộ ba (fontname, fontize, fonttype)

Viết văn bản - biểu diễn chuỗi của arg - tại vị trí rùa hiện tại theo sự sắp xếp (bên trái, một trung tâm trực tiếp hoặc trung tâm phải) và với phông chữ đã cho. Nếu di chuyển là đúng, bút được di chuyển đến góc dưới bên phải của văn bản. Theo mặc định, di chuyển là False.

>>>

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

Trạng thái rùa 

Tầm nhìn 

turtle.hideturtle

turtle.ht

Làm cho rùa vô hình. Đó là một ý tưởng tốt để làm điều này trong khi bạn đang thực hiện một số bản vẽ phức tạp, bởi vì ẩn con rùa tăng tốc bản vẽ một cách quan sát.

turtle.showturtle

turtle.st

Làm cho rùa nhìn thấy.

turtle.isvisible

Quay trở lại Truenếu Rùa được hiển thị, Falsenếu nó bị ẩn.

>>>

>>> turtle.hideturtle()
>>> turtle.isvisible()
False
>>> turtle.showturtle()
>>> turtle.isvisible()
True

Bề ngoài 

turtle.shapeName = Không 

Thông số

Tên - một chuỗi là một shapename hợp lệ

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

>>> turtle.shape()
'classic'
>>> turtle.shape("turtle")
>>> turtle.shape()
'turtle'

turtle.resizemodeRmode = Không 

Thông số

rmode - một trong những chuỗi Tự động,

Đặt resizemode thành một trong các giá trị: Tự động hóa trực tiếp, người dùng trực tiếp, người dùng trực tuyến. Nếu rmode không được đưa ra, hãy trả lại mã nguồn hiện tại. Các resizemode khác nhau có tác dụng sau:

  • Tự động tự động: thích nghi sự xuất hiện của rùa tương ứng với giá trị của penize.

  • Người dùng trên mạng: điều chỉnh sự xuất hiện của rùa theo các giá trị của bộ lọc và độ rộng đường viền (đường viền), được đặt theo shapesize().

  • Noresize nọize: không có sự thích nghi nào về sự xuất hiện của rùa.

resizemode (người dùng trên mạng) được gọi bởi shapesize()khi được sử dụng với các đối số.

>>> turtle.resizemode()
'noresize'
>>> turtle.resizemode("auto")
>>> turtle.resizemode()
'auto'

turtle.shapesizeStretch_wid = None , stretch_len = None , phác thảo = Không 

turtle.turtlesizeStretch_wid = None , stretch_len = None , phác thảo = Không 

Thông số

  • Stretch_wid - số dương

  • Stretch_len - số dương

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

Trả lại hoặc đặt thuộc tính x / y-Stretchfactors của bút và / hoặc phác thảo. Đặt resizemode thành người dùng trên mạng. Nếu và chỉ khi resizemode được đặt thành người dùng, thì con rùa sẽ được hiển thị kéo dài theo các bộ phận kéo dài của nó: Stretch_wid là bộ căng thẳng vuông góc với hướng của nó, Stretch_len là bộ căng theo hướng của nó, đường viền xác định chiều rộng của đường viền của hình dạng.

>>> turtle.shapesize()
(1.0, 1.0, 1)
>>> turtle.resizemode("user")
>>> turtle.shapesize(5, 5, 12)
>>> turtle.shapesize()
(5, 5, 12)
>>> turtle.shapesize(outline=8)
>>> turtle.shapesize()
(5, 5, 8)

turtle.shearfactorCắt = Không 

Thông số

cắt - số (tùy chọn)

Đặt hoặc trả về shearfactor hiện tại. Cắt thịt rùa theo cắt shearfactor đã cho, đó là tiếp tuyến của góc cắt. Đừng không thay đổi tiêu đề của rùa (hướng chuyển động). Nếu cắt không được đưa ra: trả về máy cắt hiện tại, tức là tiếp tuyến của góc cắt, theo đó các đường thẳng song song với tiêu đề của rùa bị cắt.

 >>> turtle.shape("circle")
 >>> turtle.shapesize(5,2)
 >>> turtle.shearfactor(0.5)
 >>> turtle.shearfactor()
 0.5

turtle.tiltGóc 

Thông số

góc - một số

Xoay thịt rùa theo góc từ góc nghiêng hiện tại của nó, nhưng không thay đổi hướng của rùa (hướng di chuyển).

>>> turtle.reset()
>>> turtle.shape("circle")
>>> turtle.shapesize(5,2)
>>> turtle.tilt(30)
>>> turtle.fd(50)
>>> turtle.tilt(30)
>>> turtle.fd(50)

turtle.settiltangleGóc 

Thông số

góc - một số

Xoay turt Meatape để chỉ theo hướng được chỉ định bởi góc , bất kể góc nghiêng hiện tại của nó. Không thay đổi tiêu đề của rùa (hướng di chuyển).

>>> turtle.reset()
>>> turtle.shape("circle")
>>> turtle.shapesize(5,2)
>>> turtle.settiltangle(45)
>>> turtle.fd(50)
>>> turtle.settiltangle(-45)
>>> turtle.fd(50)

Không dùng nữa kể từ phiên bản 3.1.

turtle.tiltangleGóc = Không 

Thông số

góc - một số (tùy chọn)

Đặt hoặc trả về góc nghiêng hiện tại. Nếu góc được đưa ra, xoay vòng xoay để chỉ theo hướng được chỉ định bởi góc, bất kể góc nghiêng hiện tại của nó. Đừng không thay đổi tiêu đề của rùa (hướng chuyển động). Nếu góc không được đưa ra: trả về góc nghiêng hiện tại, nghĩa là góc giữa hướng của rùa và tiêu đề của rùa (hướng di chuyển của nó).

>>> turtle.reset()
>>> turtle.shape("circle")
>>> turtle.shapesize(5,2)
>>> turtle.tilt(45)
>>> turtle.tiltangle()
45.0

turtle.shapetransform(  T11 = Không  ,  t12 = Không  ,  T21 = Không  ,  T22 = Không  

Thông số

  • t11 - một số (tùy chọn)

  • t12 - một số (tùy chọn)

  • t21 - một số (tùy chọn)

  • t12 - một số (tùy chọn)

Đặt hoặc trả về ma trận biến đổi hiện tại của hình dạng rùa.

Nếu không có phần tử ma trận nào được đưa ra, hãy trả về ma trận biến đổi dưới dạng một bộ gồm 4 phần tử. Mặt khác, đặt các phần tử đã cho và biến đổi turt Meatape theo ma trận bao gồm hàng đầu tiên t11, t12 và hàng thứ hai t21, 22. Số xác định t11 * t22 - t12 * t21 không được bằng 0, nếu không sẽ xảy ra lỗi. Sửa đổi Stretchfactor, shearfactor và tiltangle theo ma trận đã cho.

>>> turtle = Turtle()
>>> turtle.shape("square")
>>> turtle.shapesize(4,2)
>>> turtle.shearfactor(-0.5)
>>> turtle.shapetransform()
(4.0, -1.0, -0.0, 2.0)

turtle.get_shapepoly

Trả về đa giác hình dạng hiện tại dưới dạng tuple của các cặp tọa độ. Điều này có thể được sử dụng để xác định một hình dạng mới hoặc các thành phần của hình dạng ghép.

>>> turtle.shape("square")
>>> turtle.shapetransform(4, -1, 0, 2)
>>> turtle.get_shapepoly()
((50, -20), (30, 20), (-50, 20), (-30, -20))

Sử dụng sự kiện 

turtle.onclickVui vẻ , btn = 1 , thêm = Không 

Thông số

  • vui vẻ - một hàm có hai đối số sẽ được gọi với tọa độ của điểm được nhấp trên khung vẽ

  • btn - số nút chuột, mặc định là 1 (nút chuột trái)

  • thêm - Truehoặc False- nếu 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 thú vị với các sự kiện nhấp chuột trên con rùa này. Nếu vui là None, các ràng buộc hiện có được loại bỏ. Ví dụ cho rùa ẩn danh, tức là cách thức thủ tục:

>>> def turn(x, y):
...     left(180)
...
>>> onclick(turn)  # Now clicking into the turtle will turn it.
>>> onclick(None)  # event-binding will be removed

turtle.onreleaseVui vẻ , btn = 1 , thêm = Không 

Thông số

  • vui vẻ - một hàm có hai đối số sẽ được gọi với tọa độ của điểm được nhấp trên khung vẽ

  • btn - số nút chuột, mặc định là 1 (nút chuột trái)

  • thêm - Truehoặc False- nếu 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 thú vị với các sự kiện phát hành nút chuột trên con rùa này. Nếu vui là None, các ràng buộc hiện có được loại bỏ.

>>> class MyTurtle(Turtle):
...     def glow(self,x,y):
...         self.fillcolor("red")
...     def unglow(self,x,y):
...         self.fillcolor("")
...
>>> turtle = MyTurtle()
>>> turtle.onclick(turtle.glow)     # clicking on turtle turns fillcolor red,
>>> turtle.onrelease(turtle.unglow) # releasing turns it to transparent.

turtle.ondragVui vẻ , btn = 1 , thêm = Không 

Thông số

  • vui vẻ - một hàm có hai đối số sẽ được gọi với tọa độ của điểm được nhấp trên khung vẽ

  • btn - số nút chuột, mặc định là 1 (nút chuột trái)

  • thêm - Truehoặc False- nếu 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 thú vị với các sự kiện di chuyển chuột trên con rùa này. Nếu vui là None, các ràng buộc hiện có được loại bỏ.

Ghi chú: Mọi chuỗi sự kiện di chuyển chuột trên một con rùa đều được bắt đầu bằng một sự kiện nhấp chuột trên con rùa đó.

>>> turtle.ondrag(turtle.goto)

Sau đó, nhấp và kéo Rùa sẽ di chuyển nó trên màn hình do đó tạo ra các thao tác rút tiền (nếu bút bị hỏng).

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

turtle.begin_poly

Bắt đầu ghi lại các đỉnh của một đa giác. Vị trí rùa hiện tại là đỉnh đầu tiên của đa giác.

turtle.end_poly

Dừng ghi lại các đỉnh của một đa giác. Vị trí rùa hiện tại là đỉnh cuối cùng của đa giác. Điều này sẽ được kết nối với đỉnh đầu tiên.

turtle.get_poly

Trả về đa giác được ghi cuối cùng.

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

turtle.clone

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

>>> mick = Turtle()
>>> joe = mick.clone()

turtle.getturtle

turtle.getpen

Trả lại đối tượng Rùa. Chỉ sử dụng hợp lý: như một chức năng để trả lại rùa ẩn danh

>>> pet = getturtle()
>>> pet.fd(50)
>>> pet
<turtle.Turtle object at 0x...>

turtle.getscreen

Trả lại TurtleScreenđối tượng con rùa đang vẽ. Phương thức TurtleScreen sau đó có thể được gọi cho đối tượng đó.

>>> ts = turtle.getscreen()
>>> ts
<turtle._Screen object at 0x...>
>>> ts.bgcolor("pink")

turtle.setundobufferKích thước 

Thông số

kích thước - một số nguyên hoặcNone

Đặt hoặc vô hiệu hóa undobuffer. Nếu kích thước là một số nguyên, một undobuffer trống có kích thước đã cho sẽ được cài đặt. kích thước cho số lượng hành động rùa tối đa có thể được hoàn tác bằng undo()phương thức / chức năng. Nếu kích thước là None, undobuffer bị vô hiệu hóa.

>>> turtle.setundobuffer(42)

turtle.undobufferentries

Trả về số lượng mục trong undobuffer.

>>> while undobufferentries():
...     undo()

Hình dạng hợp chất 

Để sử dụng hình dạng rùa hỗn hợp, bao gồm một số đa giác có màu khác nhau, bạn phải sử dụng lớp người trợ giúp Shapemột cách rõ ràng như được mô tả dưới đây:

  1. Tạo một đối tượng Hình dạng trống của loại hình ghép.

  2. Thêm nhiều thành phần vào đối tượng này như mong muốn, sử dụng addcomponent()phương thức.

    Ví dụ:

    >>> s = Shape("compound")
    >>> poly1 = ((0,0),(10,-5),(0,10),(-10,-5))
    >>> s.addcomponent(poly1, "red", "blue")
    >>> poly2 = ((0,0),(10,-5),(-10,-5))
    >>> s.addcomponent(poly2, "blue", "red")
    

  3. Bây giờ hãy thêm Shape vào shapelist của Screen và sử dụng nó:

    >>> register_shape("myshape", s)
    >>> shape("myshape")
    

Ghi chú

 

Các Shapelớp học được sử dụng trong nội bộ của các register_shape() phương pháp theo những cách khác nhau. Lập trình viên ứng dụng có để đối phó với các lớp Shape chỉ khi sử dụng hình dạng hợp chất như trình bày ở trên!

Phương pháp TurtleScreen / Màn hình và chức năng tương ứng 

Hầu hết các ví dụ trong phần này đề cập đến một ví dụ TurtleScreen được gọi screen.

Kiểm soát cửa sổ 

turtle.bgcolor(  Luận điểm *  

Thông số

args - một chuỗi màu hoặc ba số trong phạm vi 0..colormode hoặc 3-tuple của các số đó

Đặt hoặc trả lại màu nền của TurtleScreen.

>>> screen.bgcolor("orange")
>>> screen.bgcolor()
'orange'
>>> screen.bgcolor("#800080")
>>> screen.bgcolor()
(128.0, 0.0, 128.0)

turtle.bgpicPicname = Không 

Thông số

picname - một chuỗi, tên của tệp gif hoặc "nopic", hoặcNone

Đặt hình nền hoặc tên trả về của hình nền hiện tại. Nếu picname là tên tệp, hãy đặt hình ảnh tương ứng làm nền. Nếu picname là "nopic", xóa hình nền, nếu có. Nếu picname là None, trả lại tên tệp của hình nền hiện tại.

>>>

>>> screen.bgpic()
'nopic'
>>> screen.bgpic("landscape.gif")
>>> screen.bgpic()
"landscape.gif"

turtle.clear)

turtle.clearscreen

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

Ghi chú

 

Phương thức TurtleScreen này có sẵn dưới dạng hàm toàn cục chỉ dưới tên clearscreen. Hàm toàn cục clearlà một hàm khác có nguồn gốc từ phương pháp Rùa clear.

turtle.reset)

turtle.resetscreen

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

Ghi chú

 

Phương thức TurtleScreen này có sẵn dưới dạng hàm toàn cục chỉ dưới tên resetscreen. Hàm toàn cục resetlà một hàm khác bắt nguồn từ phương thức Rùa reset.

turtle.screensizeCanvwidth = None , canvheight = None , bg = Không 

Thông số

  • canvference - số nguyên dương, chiều rộng mới của canvas theo pixel

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

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

Nếu không có đối số nào được đưa ra, hãy trả về dòng điện (canvas, canvasheight). Khác thay đổi kích thước vải mà rùa đang vẽ. Không thay đổi cửa sổ bản vẽ. Để quan sát các phần ẩn của khung vẽ, sử dụng thanh cuộn. Với phương pháp này, người ta có thể nhìn thấy những phần của bản vẽ bên ngoài khung vẽ trước đó.

>>>

>>> screen.screensize()
(400, 300)
>>> screen.screensize(2000,1500)
>>> screen.screensize()
(2000, 1500)

ví dụ: để tìm kiếm một con rùa trốn thoát sai lầm ;-)

turtle.setworldcoordinatesllx ,  lly ,  urx ,  ury )

Thông số

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

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

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

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

Thiết lập hệ tọa độ do người dùng xác định và chuyển sang chế độ Thế giới trực tiếp nếu cần. Điều này thực hiện a  screen.reset(). Nếu chế độ, thế giới, thế giới đã được kích hoạt, tất cả các bản vẽ được vẽ lại theo tọa độ mới.

CHÚ Ý : trong các góc hệ thống tọa độ do người dùng xác định có thể bị méo.

>>> screen.reset()
>>> screen.setworldcoordinates(-50,-7.5,50,7.5)
>>> for _ in range(72):
...     left(10)
...
>>> for _ in range(8):
...     left(45); fd(2)   # a regular octagon

Kiểm soát hoạt hình

turtle.delaychậm trễ = Không có )

Thông số

độ trễ  - số nguyên dương

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

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

>>> screen.delay()
10
>>> screen.delay(5)
>>> screen.delay()
5

turtle.tracern = Không ,  trì hoãn = Không )

Thông số

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

  • độ trễ  - số nguyên không âm

Bật / tắt hoạt hình rùa và đặt độ trễ cho bản vẽ cập nhật. Nếu  n  được đưa ra, chỉ có mỗi cập nhật màn hình thông thường thứ n thực sự được thực hiện. (Có thể được sử dụng để tăng tốc bản vẽ đồ họa phức tạp.) Khi được gọi mà không có đối số, trả về giá trị hiện được lưu trữ của n. Đối số thứ hai đặt giá trị độ trễ (xem  delay()).

>>> screen.tracer(8, 25)
>>> dist = 2
>>> for i in range(200):
...     fd(dist)
...     rt(90)
...     dist += 2

turtle.update()

Thực hiện cập nhật TurtleScreen. Được sử dụng khi tắt tracer.

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

Sử dụng các sự kiện màn hình

turtle.listenxdummy = Không ,  ydummy = Không )

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

turtle.onkeyVui vẻ , chìa khóa 

turtle.onkeyreleaseVui vẻ , chìa khóa 

Thông số

  • vui vẻ - một chức năng không có đối số hoặcNone

  • key - một chuỗi: key (vd: một người khác) hoặc biểu tượng khóa (ví dụ:

Liên kết thú vị với sự kiện phát hành khóa của khóa. Nếu vui là None, các ràng buộc sự kiện được gỡ bỏ. Lưu ý: để có thể đăng ký các sự kiện quan trọng, TurtleScreen phải có trọng tâm. (Xem phương pháp listen().)

>>> def f():
...     fd(50)
...     lt(60)
...
>>> screen.onkey(f, "Up")
>>> screen.listen()

turtle.onkeypressVui vẻ , key = Không 

Thông số

  • vui vẻ - một chức năng không có đối số hoặcNone

  • key - một chuỗi: key (vd: một người khác) hoặc biểu tượng khóa (ví dụ:

Liên kết thú vị với sự kiện nhấn phím nếu phím được đưa ra hoặc với bất kỳ sự kiện nhấn phím nào nếu không có phím nào được đưa ra. Lưu ý: để có thể đăng ký các sự kiện quan trọng, TurtleScreen phải có trọng tâm. (Xem phương pháp listen().)

>>> def f():
...     fd(50)
...
>>> screen.onkey(f, "Up")
>>> screen.listen()

turtle.onclickvui , btn = 1 , thêm = Không )

turtle.onscreenclickVui vẻ , btn = 1 , thêm = Không 

Thông số

  • vui vẻ - một hàm có hai đối số sẽ được gọi với tọa độ của điểm được nhấp trên khung vẽ

  • btn - số nút chuột, mặc định là 1 (nút chuột trái)

  • thêm - Truehoặc False- nếu 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 thú vị với các sự kiện nhấp chuột trên màn hình này. Nếu vui là None, các ràng buộc hiện có được loại bỏ.

Ví dụ cho một phiên bản TurtleScreen có tên screenvà một phiên bản Rùa có tên rùa:

>>> screen.onclick(turtle.goto) # Subsequently clicking into the TurtleScreen will
>>>                             # make the turtle move to the clicked point.
>>> screen.onclick(None)        # remove event binding again

Ghi chú

 

Phương thức TurtleScreen này có sẵn dưới dạng hàm toàn cục chỉ dưới tên onscreenclick. Hàm toàn cục onclicklà một hàm khác bắt nguồn từ phương thức Rùa onclick.

turtle.ontimerVui vẻ , t = 0 

Thông số

  • vui vẻ - một chức năng không có đối số

  • t - một số> = 0

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

>>> running = True
>>> def f():
...     if running:
...         fd(50)
...         lt(60)
...         screen.ontimer(f, 250)
>>> f()   ### makes the turtle march around
>>> running = False

turtle.mainloop

turtle.done

Bắt đầu vòng lặp sự kiện - gọi hàm mainloop của Tkinter. Phải là tuyên bố cuối cùng trong một chương trình đồ họa rùa. Phải không được sử dụng nếu một kịch bản được điều hành từ bên trong IDLE trong chế độ -n (Không subprocess) - sử dụng tương tác đồ họa rùa.

Phương thức nhập 

turtle.textinputTiêu đề , dấu nhắc 

Thông số

  • tiêu đề - chuỗi

  • dấu nhắc - chuỗi

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

>>>

>>> screen.textinput("NIM", "Name of first player:")

turtle.numinputTiêu đề , kịp thời , mặc định = Không , minval = None , maxval = Không 

Thông số

  • tiêu đề - chuỗi

  • dấu nhắc - chuỗi

  • mặc định - số (tùy chọn)

  • số lượng tối thiểu - số (tùy chọn)

  • tối đa - số (tùy chọn)

Bật lên một cửa sổ hộp thoại để nhập số. tiêu đề là tiêu đề của cửa sổ hộp thoại, dấu nhắc là một văn bản chủ yếu mô tả thông tin số nào để nhập. default: giá trị mặc định, minval: giá trị tối thiểu cho đầu vào, maxval: giá trị tối đa cho đầu vào Đầu vào số phải nằm trong phạm vi minval .. maxval nếu chúng được đưa ra. Nếu không, một gợi ý được đưa ra và hộp thoại vẫn mở để sửa. Trả về số đầu vào. Nếu hộp thoại bị hủy, trả lại None.

>>>

>>> screen.numinput("Poker", "Your stakes:", 1000, minval=10, maxval=10000)

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

turtle.modeMode = Không 

Thông số

chế độ - một trong các chuỗi tiêu chuẩn, trực tiếp

Đặt chế độ rùa (tiêu chuẩn của người Hồi giáo, biểu tượng của người Hồi giáo hoặc người nổi tiếng thế giới) và thực hiện thiết lập lại. Nếu chế độ không được đưa ra, chế độ hiện tại được trả về.

Chế độ tiêu chuẩn của chế độ cao là tương thích với chế độ cũ  turtle. Chế độ logo Logo Chế độ tương thích với hầu hết đồ họa Logo Logo. Chế độ World world sử dụng tọa độ thế giới do người dùng định nghĩa. Chú ý : trong chế độ này, các góc sẽ xuất hiện méo nếu  x/y tỷ lệ đơn vị không bằng 1.

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.colormodecmode = 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.ScrolledCanvas object ...>

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_shapetên ,  hình dạng = Không )

turtle.addshapetên ,  hình dạng = Không )

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

  1. 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!

  2. 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)))
    

  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 -nswitch (không subprocess) được sử dụng, giá trị này nên được đặt Truetrong 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.cfgtệ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 ngang

  • giậ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.RawTurtlecanvas 

lớp turtle.RawPencanvas 

Thông số

vải - a tkinter.Canvas, a ScrolledCanvashoặ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.TurtleScreencv 

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.ScrolledCanvasbậ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.Shapetype_ , 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

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

addcomponentNhiề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ố

  •  màu - một màu poly sẽ được lấp đầy

  • phác thảo - một màu cho phác thảo của poly (nếu có)

Thí dụ:

>>> poly = ((0,0),(10,-5),(0,10),(-10,-5))
>>> s = Shape("compound")
>>> s.addcomponent(poly, "red", "blue")
>>> # ... add more components and then use register_shape()

Xem hình dạng hợp chất .

lớp turtle.Vec2Dx , 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 vector

  • a - b phép trừ vector

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

  • k * avà nhân với vô hướnga * k

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

  • a.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 turtlevớ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.cfgtệ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.cfgsẽ đượ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 = italianturtle_docstringdict_italian.pyturtle

  • 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 Truenế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ặn exitonclick()để vào mainloop.

Có thể có một turtle.cfgtệ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/turtledemochứa một turtle.cfgtậ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 turtledemogó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 turtledemogói chứa:

  • Một trình xem demo __main__.pycó 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.cfgtệ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

tracer(), sự chậm trễ, update()

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

ondrag()

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)

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

onclick()

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

stamp()

hành tinh_and_moon

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

hình dạng hợp chất, Vec2D

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)

clone()

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

clone()undo()

âm dương

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

circle()

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ức Screen. 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ủa TurtleScreenScreen-method tương ứng .)

  • Phương pháp Turtle.fill()đã được loại bỏ. Hành vi của begin_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ột end_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: Truenếu quá trình điền đang diễn ra, Falsenếu không. Hành vi này tương ứng với một fill()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 đối

  • Phương thức Screen.onkeypress()này đã được thêm vào như là một bổ sung Screen.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ập mainloop()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.pyvà tdemo_round_dance.py đã được thêm vào Lib/turtledemothư mục.


Các khóa học miễn phí qua video:
Lập trình C Java C# SQL Server PHP HTML5-CSS3-JavaScript

Copied !!!

  • Tải thêm tài liệu liên quan đến bài viết Hướng dẫn python turtle graphics