Python: Cách tạo hình dạng Turtle tùy chỉnh trong Python?

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Trong Turtle, theo mặc định, chúng ta có một con trỏ hình đầu mũi tên để vẽ trên canvas. Điều này có thể được thay đổi thành một số hình dạng được xác định trước khác hoặc chúng tôi cũng có thể tạo một hình dạng tùy chỉnh và đăng ký nó dưới một tên. Không chỉ vậy, chúng ta thậm chí có thể sử dụng hình ảnh định dạng gif để thay thế con trỏ của mình.

Thay đổi con trỏ thành các hình dạng xác định trước

Hàm shape() được sử dụng để thiết lập hình dạng của con trỏ. Các hình dạng được xác định trước bao gồm rùamũi tên, hình trònhình vuông và hình tam giác.

import turtle

# tạo đối tượng rùa
c_turtle = turtle.Turtle()

# thay đổi sang dạng tròn cho rùa
c_turtle.shape('circle')

Kết quả:

Dùng hàm shape() để thiết lập dạng trong Turtle

Đăng ký hình dạng mới

Module turtle có hàm register_shape() dùng để đăng ký các dạng mới một cách tùy chỉnh.

Cú pháp: turtle.register_shape(name, shape)
Các thông số:

  • name: một chuỗi là tên của hình dạng được đăng ký, tên này cũng ta tự đặt.
  • shape: một bộ giá trị bao gồm các tọa độ cho hình dạng tùy chỉnh.

Đối số shape của hàm register_shape() là một tuple trong đó bao gồm n tuple con biểu thị các vị trí tương đối của mỗi góc của đa giác n cạnh, n phải tối thiểu là 3. Chúng ta hãy thử tạo một hình dạng kim cương (dạng hình thoi) đơn giản để hiểu rõ hơn điều này.

Xét hình thoi dưới đây, có độ dài đường chéo = 20, trong một mặt phẳng Descartes (Đề-các):

Để tạo ra hình dạng này, chúng ta cần chuyển các tọa độ này theo thứ tự chiều kim đồng hồ như đoạn code sau:

import turtle

# tạo đối tượng rùa
dimond_turtle = turtle.Turtle()

# tọa độ của mỗi góc
shape = ((0, 0), (10, 10), (20, 0), (10, -10))

# đăng ký registering the new shape 
turtle.register_shape('diamond', shape)

# thay đổi dạng của rùa thành 'diamond' 
dimond_turtle.shape('diamond')

Kết quả:

Dạng kim cương

Sử dụng hình ảnh cho làm dạng cho rùa

Để sử dụng một hình ảnh làm dạng cho con rùa thì chúng ta cần chuyển đường dẫn tệp hình ảnh làm tham số của hàm register_shape(). Lưu ý rằng hình ảnh này phải ở định dạng là ảnh gif.

Cách thức thực hiện như thể hiện ở đoạn code dưới đây:

import turtle

# tạo đối tượng rùa
img_turtle = turtle.Turtle()

# đặng ký ảnh làm dạng mới cho rùa
turtle.register_shape('example.gif')

# thiết lập ảnh làm dạng mới cho rùa
img_turtle.shape('example.gif')

Kết quả ví dụ:

Dạng mới của rùa là ảnh

» Tiếp: Tô màu với Turtle-Python
« Trước: Trợ giúp và cấu hình
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!