Python: Cách tạo hình dạng Turtle tùy chỉnh trong Python?
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ùa, mũi tên, hình tròn, hì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ả:
Đă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ả:
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ụ:
Giải phóng thời gian, khai phóng năng lực