tôi muốn để tính toán khoảng cách d giữa hai polylines:Khoảng cách giữa hai polylines
Rõ ràng là tôi có thể kiểm tra khoảng cách cho tất cả các cặp dòng phân đoạn và lựa chọn khoảng cách nhỏ nhất, nhưng điều này cách thuật toán sẽ có thời gian chạy là O (n). Có cách tiếp cận nào tốt hơn không?
Điều này trông giống như một cái gì đó [quadtrees] (https://en.wikipedia.org/wiki/Quadtree) có thể là tốt cho - nhưng ra khỏi đỉnh đầu của tôi tôi đã không có gì hữu ích hơn thế. – hnefatl
Không biết câu trả lời, nhưng tôi đoán một số thuật toán dựa trên quadtree phải có thể, nơi bạn chỉ tính toán khoảng cách đường thẳng giữa các phần tử lân cận. – jdehesa
Cách tiếp cận dựa trên khung giới hạn có thể hữu ích. Tính toán các hộp giới hạn của các polylines một phần (ví dụ: các điểm 1 ... 4, 4 ... 7 từ A và 8 ... 10, 10 ... 12 từ B). Đối với mỗi cặp hộp, bạn có thể tính toán một phút và khoảng cách tối đa và loại bỏ các cặp không thể cạnh tranh với cặp tốt nhất, tinh chỉnh các hộp một cách đệ quy cho đến khi tất cả đều là hộp 2 điểm (1 dòng), nơi bạn có thể thực hiện chính xác tính toán. Dường như là O (N logN). –