Trong đồ họa máy tính, đồ họa con rùa là đồ họa vector sử dụng con trỏ tương đối ["con rùa"] trên mặt phẳng Cartesian [trục x và y]. Đồ họa con rùa là một tính năng chính của ngôn ngữ lập trình Logo
Tổng quan[sửa]
Một hình ảnh động cho thấy cách con rùa được sử dụng để tạo đồ họa bằng cách kết hợp các lệnh tiến và xoay trong khi bút đang chạm vào giấy
Một hình xoắn ốc được vẽ bằng thuật toán đồ họa con rùa lặp đi lặp lại
Con rùa có ba thuộc tính. một vị trí, một định hướng [hoặc hướng] và một cây bút. Cây bút cũng có thuộc tính. màu sắc, chiều rộng và trạng thái bật/tắt [còn gọi là xuống và lên]
Con rùa di chuyển với các mệnh lệnh liên quan đến vị trí của chính nó, chẳng hạn như "tiến về phía trước 10 khoảng cách" và "rẽ trái 90 độ". Bạn cũng có thể kiểm soát chiếc bút mà rùa mang theo bằng cách kích hoạt nó, đặt màu hoặc đặt chiều rộng của nó. Một học sinh có thể hiểu [và dự đoán và suy luận về] chuyển động của con rùa bằng cách tưởng tượng họ sẽ làm gì nếu họ là con rùa. Seymour Papert gọi đây là lý luận "tổng hợp cơ thể"
Một hệ thống đồ họa rùa đầy đủ yêu cầu luồng điều khiển, thủ tục và đệ quy. nhiều chương trình vẽ rùa bị thiếu. Từ những khối xây dựng này, người ta có thể xây dựng các hình dạng phức tạp hơn như hình vuông, hình tam giác, hình tròn và các hình tổng hợp khác. Ví dụ, ý tưởng về đồ họa con rùa rất hữu ích trong hệ thống Lindenmayer để tạo fractals
Hình học con rùa đôi khi cũng được sử dụng trong môi trường đồ họa như một giải pháp thay thế cho hệ thống đồ họa có địa chỉ tọa độ nghiêm ngặt
Lịch sử[sửa]
Đồ họa con rùa thường gắn liền với ngôn ngữ lập trình Logo. Seymour Papert đã thêm hỗ trợ đồ họa con rùa vào Logo vào cuối những năm 1960 để hỗ trợ phiên bản rô-bốt rùa của ông, một rô-bốt đơn giản được điều khiển từ máy trạm của người dùng được thiết kế để thực hiện các chức năng vẽ được gán cho nó bằng cách sử dụng một cây bút nhỏ có thể thu vào hoặc . Hình học con rùa hoạt động hơi khác so với hình học Descartes có địa chỉ [x,y], chủ yếu dựa trên vectơ [i. e. hướng tương đối và khoảng cách từ điểm bắt đầu] so với các hệ thống định địa chỉ tọa độ như ảnh bitmap hoặc đồ họa raster. Trên thực tế, việc sử dụng hình học con rùa thay vì một mô hình truyền thống hơn sẽ bắt chước logic chuyển động thực tế của rô-bốt rùa. Con rùa theo truyền thống và thường được biểu thị bằng hình ảnh dưới dạng biểu tượng hình tam giác hoặc con rùa [mặc dù nó có thể được biểu thị bằng bất kỳ biểu tượng nào]
Ngày nay, thư viện chuẩn của ngôn ngữ lập trình Python bao gồm mô-đun đồ họa Rùa. Giống như người tiền nhiệm Logo của nó, việc triển khai rùa trong Python cho phép các lập trình viên điều khiển một hoặc nhiều rùa trong không gian hai chiều. Vì cú pháp Python tiêu chuẩn, luồng điều khiển và cấu trúc dữ liệu có thể được sử dụng cùng với mô-đun rùa, nên rùa đã trở thành một cách phổ biến cho các lập trình viên học Python để làm quen với những điều cơ bản của ngôn ngữ
Mở rộng ra ba chiều[sửa]
Mẫu được vẽ bằng chương trình Python
Ý tưởng đằng sau đồ họa con rùa có thể được mở rộng để bao gồm không gian ba chiều. Điều này đạt được bằng cách sử dụng một trong các mô hình tọa độ khác nhau. Một thiết lập phổ biến là quay cartesian như với con rùa 2D ban đầu. một vectơ "lên" bổ sung [vectơ pháp tuyến] được xác định để chọn mặt phẳng mà vectơ "chuyển tiếp" 2D của con rùa quay vào; . Trên thực tế, con rùa có hai góc hướng khác nhau, một góc nằm trong mặt phẳng và góc kia xác định góc của mặt phẳng. Thông thường, việc thay đổi góc của mặt phẳng không làm rùa di chuyển, phù hợp với cách thiết lập truyền thống
Verhoeff 2010 thực hiện cách tiếp cận hai vectơ; . Bài báo tiến hành xây dựng một lý thuyết đại số để chứng minh các tính chất hình học từ các thuộc tính cú pháp của các chương trình con rùa bên dưới. Một trong những hiểu biết sâu sắc là lệnh bổ nhào thực sự là cách viết tắt của chuỗi quay-lăn-rẽ
Cheloniidae Turtle Graphics là một thư viện rùa 3D cho Java. Nó có lệnh ngân hàng [giống như cuộn] và lệnh cao độ [giống như lặn] trong "Rotational Descartesian Turtle". Các mô hình tọa độ khác, bao gồm hình học phi Euclide, được cho phép nhưng không được đưa vào
Tất cả chúng ta đều đã lập trình dựa trên Rùa có logo trong thời thơ ấu. Đó là một ngôn ngữ hấp dẫn cho phép chúng tôi tạo ra đồ họa và hình dạng. Vâng, Python cũng có thể giúp chúng ta thực hiện điều đó
Rùa là gì?
Turtle là một thư viện Python giúp bạn vẽ đồ họa bằng cách đưa ra một số lệnh như tiến, lùi, trái, phải, v.v. cho con trỏ. Con trỏ dùng để vẽ đồ họa còn được gọi là bút. Sử dụng các lệnh này bạn có thể vẽ một số hình cơ bản như hình vuông, hình tròn, hình chữ nhật và cả một số đồ họa phức tạp mà bạn sẽ tìm hiểu trong tài liệu này
Sau đây là một số phương thức rùa được sử dụng để vẽ các đối tượng trong tài liệu này
- chuyển tiếp [pixel]. Nó di chuyển mũi tên về phía trước 10 pixel
- góc phải]. Nó di chuyển mũi tên theo một góc xác định theo chiều kim đồng hồ
- trái [góc]. Hướng mũi tên sang trái ở góc đã chỉ định
- lạc hậu [pixel]. Hướng mũi tên di chuyển về phía sau theo các pixel được chỉ định
- vòng tròn[]. Nó trả về một vòng tròn bán kính được đưa ra làm đối số
- lên[]. Di chuyển con trỏ đến một số nơi khác mà không cần vẽ
- xuống[]. Bắt đầu vẽ nếu bản vẽ bị dừng do up[]
- setx[]. Đặt tọa độ đầu tiên của mũi tên thành X
- sety[]. Đặt tọa độ thứ hai của mũi tên thành Y trong đó tọa độ đầu tiên được đặt thành X
- bgcolor[]. Đặt màu nền của cửa sổ đồ họa
- pensize [chiều rộng]. Tăng hoặc giảm kích thước của con trỏ
- pencolor [màu chuỗi]. Thay đổi màu của con trỏ từ màu đen sang màu được chỉ định
- tốc độ bút [số nguyên]. Tăng hoặc giảm tốc độ của con trỏ. Giới hạn tốc độ dao động từ 1-10, trong đó 10 là tốc độ cao nhất
- đi đến[]. Di chuyển con trỏ từ tọa độ [0,0] đến một vị trí tùy ý
- tiêu đề [chuỗi-tiêu đề]. Đặt tên cửa sổ đồ họa thành chuỗi đã chỉ định
- hình dạng [tùy chọn chuỗi]. Đặt con trỏ thành một hình dạng được chỉ định
Cửa sổ đồ họa con rùa
Cửa sổ đồ họa hiển thị kết quả của mã. Theo mặc định, cửa sổ đồ họa có màu nền là màu trắng, bạn có thể sửa đổi nó thành bất kỳ màu nào bạn chọn bằng phương thức bgcolor[]
Ví dụ
turtle.bgcolor[“blue”]
đầu ra
Tên mặc định của cửa sổ đồ họa là “Python Turtle Graphics”, bạn có thể thay đổi nó thành bất kỳ tên nào bạn chọn bằng cách sử dụng phương thức title[]
Ví dụ
turtle.title["My Turtle Program"]
đầu ra
Con trỏ rùa
Turtle cung cấp con trỏ dưới dạng mũi tên trong cửa sổ đồ họa, nó cũng cho phép bạn sửa đổi nó thành hình tròn hoặc con rùa.
Ví dụ
t = Turtle[]
t.shape["circle"]
t.shape["turtle"]
Con trỏ có chiều rộng là 1 theo mặc định, tuy nhiên, bạn có thể tăng hoặc giảm kích thước của con trỏ bằng phương pháp pensize[]
Ví dụ
t.pensize[5]
t.forward[100]
Bạn cũng có thể thay đổi màu của con trỏ từ màu đen sang bất kỳ màu nào bạn chọn bằng phương pháp pencolor[]
Ví dụ
t.pensize[5]
t.pencolor["blue"]
t.forward[65]
tọa độ rùa
Con trỏ trong cửa sổ đồ họa ban đầu ở vị trí 0, 0. Để di chuyển con trỏ đến bất kỳ vị trí tùy ý nào, bạn có thể sử dụng phương thức goto[] trong đó bạn có thể chỉ định tọa độ của vị trí tùy ý
Để di chuyển con trỏ đến bất kỳ vị trí nào trong góc phần tư thứ nhất, cả hai tọa độ phải là dương [+, +].
Để di chuyển con trỏ đến bất kỳ đâu trong tọa độ góc phần tư thứ hai phải là âm và dương [-, +].
Để di chuyển con trỏ đến bất kỳ đâu trong góc phần tư thứ ba, cả hai tọa độ phải âm [-, -].
Để di chuyển con trỏ đến bất kỳ đâu trong tọa độ góc phần tư thứ tư phải là dương và âm [+, -].
Ví dụ
t.goto[100,100]
Tạo đối tượng
Ban đầu, con trỏ rùa trỏ về bên phải, vì vậy, để tạo một đường, chỉ cần sử dụng phương pháp chuyển tiếp [pixel]
Ví dụ
t.forward[50]
đầu ra
Xem xét một ví dụ về hình vuông, để làm được điều này, bạn sẽ cần chuyển tiếp [pixel] để vẽ đường thẳng và sang phải [góc] để chỉ hướng chính xác cho con trỏ
Ví dụ
________số 8đầu ra
Tương tự bạn cũng có thể vẽ một bảng chữ cái
Ví dụ
import turtle
t=turtle.Turtle[]
t.left[90]
t.backward[100]
t.right[90]
t.forward[100]
turtle.done[]
Bây giờ, hãy vẽ một hình tròn có bán kính 20 cm bằng cách sử dụng phương thức circle[] yêu cầu bán kính làm đối số
turtle.title["My Turtle Program"]
0Tương tự ta vẽ được các đường tròn lồng vào nhau hay còn gọi là đường tròn đồng tâm. Đường tròn có tâm chung gọi là đường tròn đồng tâm. Các phương thức circle[], up[], down[] và set[] được sử dụng để vẽ các đường tròn đồng tâm
Ví dụ
turtle.title["My Turtle Program"]
1đầu ra
Tạo cầu vồng benzen
Cầu vồng Benzen là một vật thể có cấu trúc giống như cấu trúc Benzen có ít màu sắc Cầu vồng. Bạn có thể tạo cấu trúc bằng các phương thức pen[], forward[] và left[]
Ví dụ
turtle.title["My Turtle Program"]
2đầu ra
điền đối tượng
Bạn có thể tô màu cho các đối tượng của mình bằng các phương thức begin_fill[] và end_fill[]. Trước khi đối tượng được tạo, hãy gọi phương thức begin_fill[] cho biết một đối tượng đóng sẽ được tạo cần được lấp đầy và sau khi đối tượng được tạo, hãy gọi phương thức end_fill[] cho biết đối tượng hiện có thể được lấp đầy. Theo mặc định, nó lấp đầy đối tượng bằng màu đen. Để tô đối tượng bằng một màu cụ thể, hãy sử dụng phương thức pen[] với đối số fillcolor có màu mong muốn làm giá trị
Ví dụ
turtle.title["My Turtle Program"]
3đầu ra
Sự kết luận
Rùa rất tốt cho việc thiết kế đồ họa cơ bản. Trong bài viết này chúng ta đã cùng nhau tìm hiểu về thư viện rùa giúp bạn vẽ đồ họa. Nó hiệu quả và dễ thực hiện để tạo đồ họa và hình dạng đơn giản. Phần mềm và ứng dụng dành cho trẻ nhỏ có thể được vẽ bằng mô-đun này. Ngoài ra, việc cung cấp các thiết kế phần mềm trong các ứng dụng GUI cũng có thể được cung cấp bằng mô-đun này
Mô-đun này cũng có thể giúp tìm hiểu về các phương pháp khác nhau giúp tạo các đối tượng cơ bản và phức tạp, cũng như cách các vòng lặp giúp đạt được việc tạo hình ảnh