Я хочу найти минимальное расстояние между двумя полигонами. Я должен найти минимум кратчайшего расстояния между каждой вершиной первой формы со всеми вершинами другого. Что-то вроде Hausdorff Distance, но мне нужен минимум, а не максимум.
Каков самый быстрый алгоритм для вычисления минимального расстояния между двумя наборами точек?
Ответ 1
Возможно, вам стоит проверить (предупреждение в формате PDF! Также обратите внимание, что по какой-то причине порядок страниц обращается вспять) " Оптимальные алгоритмы для вычисления минимума Расстояние между двумя конечными планарными наборами" Туссен и Бхаттачарья:
В этой статье показано, что минимальное расстояние между двумя конечными плоских множеств, если [sic] n точек могут быть вычисляется в O (n log n) в худшем случае время работы и что это оптимально с постоянным коэффициентом. Кроме того, когда множества образуют выпуклый многоугольник, эта сложность может быть сведено к O (n).
Если два многоугольника пересекаются выпуклыми, возможно, вы также должны проверить (PDF-предупреждение! Опять-таки порядок страниц обращается вспять) " Оптимальный Алгоритм вычисления минимального расстояния между двумя пересекающимися выпуклыми многоугольниками" Туссена:
Пусть P = {p 1, p 2,..., p m} и Q = {q 1, q 2,..., q n} - два пересекающихся многоугольника, вершины которых заданы по их декартовым координатам в заказ. Оптимальный O (m + n) алгоритм представлен для вычисления минимальное эвклидовое расстояние между вершина p i в P и a вершина q j в Q.
Ответ 2
кратчайшее расстояние между двумя многоугольниками может быть меньше минимального расстояния между его вершиной.. (то есть перпендикулярное расстояние между одной вершиной и ребром...)