Khi chuyển đổi mô hình 3D thành tập hợp các điểm, bạn đã vứt bỏ thông tin cần thiết để tìm hình dạng giao lộ. Đi theo biểu đồ kết nối cạnh khuôn mặt của mô hình 3D của bạn để tìm các điểm giao nhau trên mặt phẳng theo thứ tự.
Giả sử bạn có, hoặc có thể xây dựng, mô hình địa hình 3d (một số số đỉnh, gờ giữa đỉnh, khuôn mặt bị ràng buộc bởi các cạnh):
- Duyệt qua danh sách cạnh cho đến khi bạn tìm thấy một giao với máy bay kiểm tra, thêm nó vào danh sách
- Chọn một trong những gương mặt mà chia sẻ cạnh này
- Duyệt qua các cạnh khác của khuôn mặt đó để tìm ngã tư tiếp theo, thêm nó vào danh sách
- Lặp lại cho khuôn mặt khác chia sẻ cạnh đó cho đến khi bạn quay lại t cạnh bắt đầu
Bạn đã xây dựng một danh sách thứ tự các cạnh giao cắt mặt phẳng - nó không tầm thường để nội suy tuyến tính từng cạnh để tìm các điểm giao nhau, để tạo thành hình dạng giao lộ. Lưu ý rằng quá trình này giả định rằng đa giác khuôn mặt là lồi, trong trường hợp của bạn. Nếu âm lượng của bạn là lõm, bạn sẽ có nhiều hình dạng giao nhau riêng biệt và vì vậy bạn cần phải lặp lại quy trình này cho đến khi tất cả các cạnh đã được kiểm tra.
Có một số mã java thực hiện điều này here và một ứng dụng thử nghiệm khá tiện lợi here.
Controls:
- 1-5 để thay đổi âm lượng kiểm tra
- q và w để thay đổi số lượng máy bay truy vấn
- một, s, d để thay đổi tốc độ quét của truy vấn máy bay
- nhấp chuột trái và kéo để xoay xem
- nhấn phải chuột và kéo để xoay máy bay truy vấn
Bạn đang nói về bất kỳ loại hình dạng 3D nào hoặc có một số hạn chế về ứng dụng hoặc miền cụ thể không? –
Vì vậy, bạn muốn nhận dạng mẫu trên đa giác 2D? – ltjax
@Andre, Xin chào, tôi đang nói về bất kỳ hình dạng * 2d * nào. Vì thân hình 3D có hình dạng như một nhánh cây, nó có lẽ sẽ gần với hình elip – Ojala