Почему ребра Делоне из delaunayn () Matlab соединяют точки с несмежными областями Вороного? - PullRequest
0 голосов
/ 24 ноября 2011

Я пытаюсь найти точки с соседними с ребром областями Вороного в данном наборе данных. Я новичок в вычислительной геометрии, но, читая онлайн, оказалось, что использование тесселяции Делоне было бы простым способом сделать это. Этот PDF , в частности, даже имеет лемму, в которой говорится

Лемма 2.4. Две точки из S соединяются ребром Делоне, если их области Вороного примыкают к краю.

Итак, я нашел тесселяцию Делоне моего набора данных как

dt = delaunay(dataset); %using delaunayn() since dataset can be multidimensional

Но теперь, когда я строю это вместе с диаграммой Вороного для этого набора данных, я обнаруживаю, что ребра Делоне возвращают точки соединения, чьи области на самом деле не смежны с ребрами.

Вот код, который я использовал для построения Вороного и Делоне:

voronoi(dataset(:, 1),dataset(:, 2));
hold on;

dt = delaunayn(dataset);
triplot(dt, dataset(:, 1), dataset(:, 2), 'red');

А вот и вывод: Voronoi Delaunay plot

В качестве примера проблемы см. Точку X на правом конце фигуры, соединенную с точкой Y возле нижнего левого угла.

Другой пример в этом вопросе SO - точка 1 соединена с 2 и 3, даже если они не смежны, и кажется, что 1 и 2 не могли бы поделиться край, даже если он расширен до бесконечности. Этот вопрос на самом деле побудил меня проверить вывод delaunayn с помощью приведенного выше кода.

Почему это происходит, и как мне получить соседние с краем соседние области, которые мне нужны?

Примечание. Чтобы увидеть изображение в полном размере и четкости, щелкните правой кнопкой мыши и выберите «Просмотреть изображение» или аналогичный.

1 Ответ

2 голосов
/ 24 ноября 2011

Насколько я вижу (качество диаграммы не очень хорошее), области для X и Y должны быть смежными ниже нанесенной части. Если отдалиться достаточно далеко, вы должны их увидеть.

т.е. край, где встречаются X и Y, существует, но просто не показан на графике.

На следующей диаграмме не показана диаграмма вороной вне области построения, но как найти точку пересечения, описанную выше (обратите внимание, биссектриса здесь не показана): extended voronoi diagram

...