Поиск ближайших соседей

Мне нужно найти «ближайших» соседей среди набора точек.

pointSet

В таблице 10 точек. изображение выше. Красные линии - это края Триангуляции Делоне , черные звезды отмечают средние линии краев, синие линии - мозаику Вороного . Точка 1 имеет трех «ближайших» соседей, то есть 4, 6 и 7, но не 2 и 3, которые почти на одной линии с ребром 1-7, а намного дальше.

Как лучше всего определять ближайших соседей (или «хорошие» края)? Глядя на рисунок, мне кажется, что хорошим решением может быть либо выбор ребер, средняя точка которых попадает на пересечение с линиями Вороного, либо рассмотрение в качестве «ближайших» соседей тех, у которых соприкасаются ячейки Вороного (классификация 3-5 можно пойти в любую сторону). Есть ли эффективный способ реализации любого из решений в Matlab (я был бы счастлив получить хороший общий алгоритм, который я затем мог бы перевести в Matlab, кстати)?

16
задан templatetypedef 10 February 2011 в 03:40
поделиться