Đồ họa con rùa là một cách phổ biến để giới thiệu lập trình cho trẻ em. Rùa ảo có thể được lập trình để di chuyển xung quanh màn hình. Con rùa vẽ các đường khi nó di chuyển. "Con rùa" có thể trông giống như con rùa, một mũi tên hoặc vô hình. Người dùng có thể viết các chương trình rùa vẽ hình đẹp và học lập trình cùng một lúc
Phần mềm Turtle ban đầu được phát triển bởi Wally Feurzig và Seymour Papert vào năm 1966
Hướng dẫn này chỉ giải thích con rùa của Python. mô-đun py. Nó không giải thích ngôn ngữ lập trình Python
Bắt đầu nhanh
TODO - giải thích cách cài đặt python, chạy IDLE
Trong IDLE, nhấp vào Tệp > Tệp mới. Sau đó nhập như sau
from turtle import * forward[100] left[90] forward[100] left[90] forward[100] left[90] forward[100]
Bấm vào Tệp > Lưu và lưu chương trình này. Sau đó nhấn F5 để chạy chương trình. Đầu ra của chương trình này sẽ trông như thế này
Các hướng dẫn trong chương trình của bạn cho "con rùa" biết cách di chuyển. Con rùa vẽ một đường phía sau nó khi nó di chuyển. Chương trình này vẽ một hình vuông. Các bước đưa ra cho chương trình là
- Tiến lên 100 bước. [Lúc đầu rùa quay mặt về bên phải. ]
- Xoay 90 độ sang trái
- Tiến lên 100 bước
- Xoay 90 độ sang trái
- Tiến lên 100 bước
- Xoay 90 độ sang trái
- Tiến lên 100 bước. Con rùa đã kết thúc nơi nó bắt đầu
Với bảy bước này, con rùa vẽ một hình vuông.
from turtle import * for i in range[500]: # this "for" loop will repeat these functions 500 times forward[i] left[91]5 là một hướng dẫn cần thiết khi bắt đầu tất cả các chương trình rùa của bạn. Nó import module của con rùa nên bạn có thể làm theo hướng dẫn của con rùa
Có nhiều hướng dẫn như left[] và forward[]. Các hướng dẫn này được gọi là chức năng. Hướng dẫn này giải thích nhiều chức năng trong mô-đun rùa. Khi tìm hiểu thêm các chức năng này, bạn sẽ vẽ được nhiều hình khác nhau và những bức tranh đẹp
ví dụ
Một chương trình xoắn ốc vuông
from turtle import * for i in range[500]: # this "for" loop will repeat these functions 500 times forward[i] left[91]
Một chương trình xoắn ốc hình lục giác đầy màu sắc
from turtle import * colors = ['red', 'purple', 'blue', 'green', 'yellow', 'orange'] for x in range[360]: pencolor[colors[x % 6]] width[x / 100 + 1] forward[x] left[59]
Chương trình hoa màu xanh
from turtle import * import random for n in range[60]: penup[] goto[random.randint[-400, 400], random.randint[-400, 400]] pendown[] red_amount = random.randint[ 0, 30] / 100.0 blue_amount = random.randint[50, 100] / 100.0 green_amount = random.randint[ 0, 30] / 100.0 pencolor[[red_amount, green_amount, blue_amount]] circle_size = random.randint[10, 40] pensize[random.randint[1, 5]] for i in range[6]: circle[circle_size] left[60]
Di chuyển
Bằng cách gọi các chức năng này, con rùa có thể di chuyển xung quanh màn hình. Hãy tưởng tượng con rùa đang cầm bút trên mặt đất và vẽ một đường khi nó di chuyển xung quanh
Vị trí của con rùa là hai con số. tọa độ X và tọa độ Y. Con rùa cũng
về phía trước [khoảng cách]
Hàm forward[] di chuyển số bước của rùa theo hướng hiện tại. Nếu bút hạ xuống [xem pendown[] và penup[]], một đường sẽ được vẽ khi rùa di chuyển về phía trước. Nếu khoảng cách là một số âm, con rùa sẽ di chuyển về phía sau
lùi [khoảng cách]
Hàm quay ngược [] di chuyển số bước khoảng cách của rùa theo hướng ngược lại với hướng hiện tại. Nếu bút hạ xuống [xem pendown[] và penup[]], một đường sẽ được vẽ khi rùa di chuyển về phía sau. Nếu khoảng cách là một số âm, con rùa sẽ di chuyển về phía trước
góc phải]
Hàm right[] sẽ thay đổi hướng hiện tại theo chiều kim đồng hồ theo góc độ. Bạn tưởng tượng ở trên con rùa nhìn xuống, con rùa rẽ phải giống như đang quay theo chiều kim đồng hồ. Con rùa sẽ không di chuyển;
Ví dụ này di chuyển con rùa về phía trước, sau đó rẽ phải 90 độ, sau đó lại di chuyển về phía trước
Ví dụ này di chuyển con rùa về phía trước, sau đó rẽ trái 90 độ, sau đó lại di chuyển về phía trước
from turtle import * forward[100] right[90] forward[100]
trái [góc]
Hàm left[] sẽ thay đổi hướng hiện tại ngược chiều kim đồng hồ hoặc ngược chiều kim đồng hồ theo góc độ. Bạn tưởng tượng ở trên con rùa nhìn xuống, con rùa rẽ trái xem như nó đang quay ngược chiều kim đồng hồ hoặc ngược chiều kim đồng hồ. Con rùa sẽ không di chuyển;
Ví dụ này di chuyển con rùa về phía trước, sau đó rẽ trái 90 độ, sau đó lại di chuyển về phía trước
from turtle import * forward[100] left[90] forward[100]
goto[x, y]
Hàm goto[] sẽ ngay lập tức di chuyển con rùa đến tọa độ x và y đã cho. Nếu bút hướng xuống [xem pendown[] và penup[]], một đường thẳng sẽ được vẽ từ tọa độ trước đó sang tọa độ mới
Ví dụ này di chuyển đến một số tọa độ x và y trong khi vẽ một đường phía sau nó
from turtle import * goto[50, 50] goto[-50, 50] goto[100, -50] goto[-50, -50]
setx[x]
Hàm goto[] sẽ ngay lập tức di chuyển con rùa đến tọa độ x đã cho. Tọa độ y của con rùa sẽ giữ nguyên. Nếu bút hướng xuống [xem pendown[] và penup[]], một đường thẳng sẽ được vẽ từ tọa độ trước đó sang tọa độ mới
sety[y]
Hàm goto[] sẽ ngay lập tức di chuyển chú rùa đến tọa độ *y * đã cho. Tọa độ x của con rùa sẽ giữ nguyên. Nếu bút hướng xuống [xem pendown[] và penup[]], một đường sẽ được vẽ từ tọa độ trước đó sang tọa độ mới
tiêu đề[tiêu đề]
Hàm setheading[] sẽ thay đổi hướng hiện tại thành góc nghiêng của tiêu đề. Nếu bạn tưởng tượng đang ở trên con rùa nhìn xuống, con rùa quay sang bên trái giống như nó đang quay ngược chiều kim đồng hồ hoặc ngược chiều kim đồng hồ. Con rùa sẽ không di chuyển;
________số 8
Hoàn tác[]
Hàm hoàn tác [] sẽ hoàn tác hành động cuối cùng của con rùa. Nó sẽ như thể hành động cuối cùng chưa bao giờ được thực hiện. Ví dụ: nếu hành động cuối cùng là gọi hàm forward[100], việc gọi hoàn tác sẽ di chuyển con rùa về phía sau 100 bước và xóa bất kỳ dòng nào đã được vẽ. Hàm hoàn tác [] có thể được gọi nhiều lần để xóa ngày càng nhiều con rùa
from turtle import * for i in range[10]: forward[100] left[90] forward[10] left[90] forward[100] right[90] forward[10] right[90] for i in range[30]: undo[]
Trang Chủ[]
Hàm home[] sẽ di chuyển con rùa về vị trí ban đầu tại tọa độ [0, 0] và đặt hướng của nó thành 0 độ. Gọi home[] giống như gọi goto[0, 0] và setheading[0]. Nếu chiếc bút hạ xuống [xem pendown[] và penup[]], một đường sẽ được vẽ khi rùa di chuyển về nhà
from turtle import * for i in range[500]: # this "for" loop will repeat these functions 500 times forward[i] left[91]0
Vẽ
đặt bút xuống[]
Hàm pendown[] sẽ khiến con rùa vẽ khi nó di chuyển xung quanh. Đường mà nó vẽ có thể được đặt bằng các hàm pencolor[] và pensize[]
bút bi[]
Hàm penup[] sẽ khiến con rùa vẽ khi nó di chuyển xung quanh. Đường mà nó vẽ có thể được đặt bằng các hàm pencolor[] và pensize[]
pensize[kích thước]
Hàm pensize[] đặt độ rộng của đường mà con rùa vẽ khi nó di chuyển
pencolor[], pencolor[màu], pencolor[[đỏ, lục, lam]], pencolor[đỏ, lục, lam]
Hàm pencolor[] thiết lập màu của đường mà con rùa vẽ. Hàm pencolor[] có thể được truyền vào một chuỗi màu, chẳng hạn như 'đỏ' hoặc 'đen'. Hoặc, hàm pencolor[] có thể được chuyển qua một "Bộ màu RGB" [xem phần Màu]
from turtle import * for i in range[500]: # this "for" loop will repeat these functions 500 times forward[i] left[91]0
xa lạ[]
Hàm clear[] sẽ xóa tất cả các nét vẽ trên màn hình. Chức năng này không di chuyển con rùa
cài lại[]
Chức năng reset[]] sẽ xóa tất cả các đường vẽ trên màn hình và trả rùa về tọa độ [0, 0] và quay mặt về 0 độ. Hàm này thực hiện tương tự như gọi hàm clear[] và home[]
Màu
Đỏ, lục, lam là ba màu cơ bản của ánh sáng
Giá trị float 0. 0 biểu thị không có độ sáng của màu đó. Giá trị nổi 1. 0 đại diện cho độ sáng đầy đủ của màu đó. Vì vậy, màu đỏ được biểu thị bằng bộ màu RGB [1. 0, 0, 0]. Màu tím có nửa đỏ tươi và nửa xanh sáng, vì vậy nó được biểu thị bằng bộ màu RGB [0. 5, 0. 0, 0. 5]. Độ sáng đầy đủ của màu đỏ và màu xanh tạo nên màu hồng. [1. 0, 0. 0, 1. 0]
Dưới đây là một số bộ màu RGB
[0. 2, 0. 0, 0. 0][0. 2, 0. 1, 0. 0][0. 2, 0. 2, 0. 0][0. 1, 0. 2, 0. 0][0. 0, 0. 2, 0. 0][0. 0, 0. 2, 0. 1][0. 0, 0. 2, 0. 2][0. 0, 0. 1, 0. 2][0. 0, 0. 0, 0. 2][0. 1, 0. 0, 0. 2][0. 2, 0. 0, 0. 2][0. 2, 0. 0, 0. 1][0. 0, 0. 0, 0. 0][0. 4, 0. 0, 0. 0][0. 4, 0. 2, 0. 0][0. 4, 0. 4, 0. 0][0. 2, 0. 4, 0. 0][0. 0, 0. 4, 0. 0][0. 0, 0. 4, 0. 2][0. 0, 0. 4, 0. 4][0. 0, 0. 2, 0. 4][0. 0, 0. 0, 0. 4][0. 2, 0. 0, 0. 4][0. 4, 0. 0, 0. 4][0. 4, 0. 0, 0. 2][0. 13, 0. 13, 0. 13][0. 6, 0. 0, 0. 0][0. 6, 0. 3, 0. 0][0. 6, 0. 6, 0. 0][0. 3, 0. 6, 0. 0][0. 0, 0. 6, 0. 0][0. 0, 0. 6, 0. 3][0. 0, 0. 6, 0. 6][0. 0, 0. 3, 0. 6][0. 0, 0. 0, 0. 6][0. 3, 0. 0, 0. 6][0. 6, 0. 0, 0. 6][0. 6, 0. 0, 0. 3][0. 25, 0. 25, 0. 25][0. 8, 0. 0, 0. 0][0. 8, 0. 4, 0. 0][0. 8, 0. 8, 0. 0][0. 4, 0. 8, 0. 0][0. 0, 0. 8, 0. 0][0. 0, 0. 8, 0. 4][0. 0, 0. 8, 0. 8][0. 0, 0. 4, 0. 8][0. 0, 0. 0, 0. 8][0. 4, 0. 0, 0. 8][0. 8, 0. 0, 0. 8][0. 8, 0. 0, 0. 4][0. 38, 0. 38, 0. 38][1. 0, 0. 0, 0. 0][1. 0, 0. 5, 0. 0][1. 0, 1. 0, 0. 0][0. 5, 1. 0, 0. 0][0. 0, 1. 0, 0. 0][0. 0, 1. 0, 0. 5][0. 0, 1. 0, 1. 0][0. 0, 0. 5, 1. 0][0. 0, 0. 0, 1. 0][0. 5, 0. 0, 1. 0][1. 0, 0. 0, 1. 0][1. 0, 0. 0, 0. 5][0. 5, 0. 5, 0. 5][1. 0, 0. 2, 0. 2][1. 0, 0. 6, 0. 2][1. 0, 1. 0, 0. 2][0. 6, 1. 0, 0. 2][0. 2, 1. 0, 0. 2][0. 2, 1. 0, 0. 6][0. 2, 1. 0, 1. 0][0. 2, 0. 6, 1. 0][0. 2, 0. 2, 1. 0][0. 6, 0. 2, 1. 0][1. 0, 0. 2, 1. 0][1. 0, 0. 2, 0. 6][0. 63, 0. 63, 0. 63][1. 0, 0. 4, 0. 4][1. 0, 0. 7, 0. 4][1. 0, 1. 0, 0. 4][0. 7, 1. 0, 0. 4][0. 4, 1. 0, 0. 4][0. 4, 1. 0, 0. 7][0. 4, 1. 0, 1. 0][0. 4, 0. 7, 1. 0][0. 4, 0. 4, 1. 0][0. 7, 0. 4, 1. 0][1. 0, 0. 4, 1. 0][1. 0, 0. 4, 0. 7][0. 75, 0. 75, 0. 75][1. 0, 0. 6, 0. 6][1. 0, 0. 8, 0. 6][1. 0, 1. 0, 0. 6][0. 8, 1. 0, 0. 6][0. 6, 1. 0, 0. 6][0. 6, 1. 0, 0. 8][0. 6, 1. 0, 1. 0][0. 6, 0. 8, 1. 0][0. 6, 0. 6, 1. 0][0. 8, 0. 6, 1. 0][1. 0, 0. 6, 1. 0][1. 0, 0. 6, 0. 8][0. 88, 0. 88, 0. 88][1. 0, 0. 8, 0. 8][1. 0, 0. 9, 0. 8][1. 0, 1. 0, 0. 8][0. 9, 1. 0, 0. 8][0. 8, 1. 0, 0. 8][0. 8, 1. 0, 0. 9][0. 8, 1. 0, 1. 0][0. 8, 0. 9, 1. 0][0. 8, 0. 8, 1. 0][0. 9, 0. 8, 1. 0][1. 0, 0. 8, 1. 0][1. 0, 0. 8, 0. 9][1. 0, 1. 0, 1. 0]Bộ màu RGB
Điền vào các hình dạng
Con rùa có thể vẽ đường viền của một hình và sau đó tô màu cho nó bằng cách sử dụng các chức năng tô màu. Quá trình điền bắt đầu khi hàm begin_color[] được gọi. Con rùa có thể di chuyển xung quanh như bình thường. Khi hàm end_fill[] được gọi, hình con rùa đang vẽ sẽ được tô màu. Màu tô tách biệt với màu bút
from turtle import * for i in range[500]: # this "for" loop will repeat these functions 500 times forward[i] left[91]1
màu tô [], màu tô [màu], màu tô [[đỏ, lục, lam]], màu tô [đỏ, lục, lam]
Hàm fillcolor[] đặt màu của hình dạng được điền khi end_fill[] được gọi. Hàm fillcolor[] có thể được truyền vào một chuỗi màu, chẳng hạn như 'đỏ' hoặc 'đen'. Hoặc, hàm fillcolor[] có thể được chuyển qua một "Bộ màu RGB" [xem phần Màu]
begin_fill[]
begin_fill[] bắt đầu ghi lại các bước di chuyển sẽ là đường viền của hình được điền vào. Hình dạng đã điền sẽ không được vẽ cho đến khi end_fill[] được gọi