Giả sử tôi đang sử dụng nhân vật này.
(nguồn: iconorms.com )
Làm thế nào bạn sẽ thực hiện phát hiện va chạm cho nó? Sử dụng hộp giới hạn dường như không phải là một xấp xỉ tốt, bởi vì hình dạng của con chim không ở gần hình vuông.
Tôi đã nghĩ đến việc có một loại cấu trúc dữ liệu cây tứ giác bên trong đối tượng đại diện cho các phần của hình ảnh. Mỗi chiếc lá có thể là false
(trong trường hợp nó bao phủ không gian trắng / trong suốt bên ngoài con chim) hoặc true
(trong trường hợp nó đại diện cho một khu vực của chim tức là mỏ, mắt, v.v.). Sau đó bằng cách nào đó kiểm tra chướng ngại vật duy nhất trong cảnh va chạm với con chim.
Nhưng vấn đề của tôi trong cách tiếp cận của tôi là:
- Tôi không biết làm thế nào để khởi tạo cây tứ giác.
- Khi cây tứ giác được khởi tạo, tôi không chắc chắn làm thế nào để vượt qua và sử dụng nó một khi chướng ngại vật nằm trong tọa độ của hình ảnh.
Làm thế nào bạn sẽ phát hiện va chạm với các nhân vật không vuông?
LE: Cách tiếp cận khác tôi từng thấy là sử dụng nhiều hộp giới hạn. Ví dụ: tôi có một hoặc một vài hộp giới hạn cho mỏ, sau đó một vài trong số chúng cho tóc hoặc đuôi. Nhưng nó có thể trở nên tẻ nhạt. Nếu đây là một cách tiếp cận hợp lệ trong trường hợp của tôi, làm thế nào tôi có thể tạo ra các hộp giới hạn đó? Tôi nghi ngờ tôi phải có chúng được mã hóa cứng trong chương trình của tôi.
LE2: Tôi quan tâm đến những va chạm khá chính xác. Tôi không thể tưởng tượng làm thế nào một hộp hoặc vòng tròn giới hạn ít nhất có thể xấp xỉ gần đúng hình dạng đó, vì vậy phương pháp này sẽ không hiệu quả.