2013-09-24 76 views
5

Tôi có hai đa giác và tôi muốn lấy khoảng cách tối thiểu và các điểm giữa khoảng cách này được đo. Tất nhiên một điểm như vậy có thể rất tốt nằm trên mép giữa hai nút.Điểm gần nhất của hai đa giác

Dưới đây là một ví dụ:

Example

Tôi đang tìm kiếm một thuật toán mà mang lại cho tôi những khoảng cách màu xanh lá cây và hai điểm.

+1

Từ hình ảnh có vẻ như rằng plygons có thể lõm. Nếu không, thuật toán GJK là giải pháp tuyệt vời cho sự cố –

+0

xem http://stackoverflow.com/questions/3700983/what-is-the-fastest-algorithm-to-calculate-the-minimum-distance-between-two-sets – Ari

Trả lời

2

Nếu đa giác không giao nhau, bạn có thể làm điều này:

Nếu bạn có hình đa giác A và đa giác B và A [i] và B [j] là các đỉnh của A và B tương ứng. Sau đó, bạn có thể tính khoảng cách gần nhất từ ​​A [i] đến mỗi đoạn B (bạn có thể sử dụng một cái gì đó như this, nhưng tính đến việc bạn sẽ làm việc với các phân đoạn, vì vậy bạn phải làm việc với điểm bắt đầu và kết thúc của phân đoạn).

Sau đó, bạn phải làm tương tự nhưng từ tất cả B [j] đến tất cả các đoạn của A.

Và cuối cùng là nhỏ nhất.

Chỉ cần nhớ nhận xét trước của tôi: xem xét điểm xuất phát và điểm kết thúc của đoạn trong khi tính khoảng cách ngắn nhất đến đoạn đường này, bởi vì điểm giao cắt có thể nằm ngoài phân đoạn. Hãy xem here để kiểm tra điều cuối cùng này. Nếu điểm được ra giữ mép gần nhất của phân khúc)

Trân