Как я могу получить диаграмму Вороного на эритроците, используя координату XYZ точек и данные о связности лиц из триангуляции Делоне?

ОБНОВЛЕНИЕ (1/12/14): Дорогие все, я изо всех сил пытался закодировать алгоритм доктора Даррена ниже в MATLAB, но мне это еще не удалось. Я смиренно прошу доброго самаритянина помочь мне с кодом и поделиться м-файлом. Еще раз спасибо.


Я намерен получить диаграмму Вороного на РБК с помощью MATLAB / FORTRAN. Мне нужна следующая конкретная информация.

  1. Вершина Вороного с использованием вектора нормали для каждого треугольника Делоне;
  2. Порядок каждого многоугольника Вороного;
  3. Списки вершин Вороного, определяющие многоугольники Вороного;
  4. Компонент нормалей на полигонах Вороного;
  5. Площади полигонов Вороного;
  6. Центроиды полигонов Вороного;
  7. Наконец, постройте полигоны Вороного с помощью PATCH;

Найдите ссылку на соответствующие текстовые файлы RBC_1, которые содержат координаты узла XYZ на RBC и RBC_2, которые содержат данные о связности лиц из триангуляции Делоне (RBC_1 и RBC_2 находятся в Zip-файле).

https://www.dropbox.com/s/slan053xbr2e864/RBC.zip?dl=0

Я попытался проследить за работой Джона Буркардта для единичной сферы: http://people.sc.fsu.edu/~jburkardt/m_src/sphere_voronoi/sphere_voronoi.html, но он не работает.

Заранее спасибо.

N.B. Мы будем очень благодарны за любые комментарии и советы.


person Adesola Ademiloye    schedule 26.11.2014    source источник
comment
его неработоспособность может означать: 1. - У меня очень похожие результаты, но я не то, что хочу 2. - Я не знаю, как его правильно кодировать, и он вылетает, давая некоторые ошибки 3. - всякий раз, когда я пытаюсь запустить его, приходит велоцирраптор и разрушает мой компьютер. Вы должны попытаться уточнить, почему не работает. Вы задаете слишком большой вопрос   -  person Ander Biguri    schedule 26.11.2014
comment
Спасибо @AnderBiguri за ваш комментарий. Сказав, что не работает, я признаю, что не смог правильно его закодировать, и результаты, которые я получаю, явно неверны, потому что площадь многоугольника Вороного, который я получаю, либо равна нулю, либо отрицательна. Спасибо   -  person Adesola Ademiloye    schedule 27.11.2014


Ответы (1)


Глядя на ваши файлы, вы видите набор точек P в R^3 и (2-многообразную) триангуляцию поверхности T вашей геометрии:

tria

Его можно легко превратить в поверхностный комплекс вороного V, отметив, что комплекс вороного <сильный > двойная к базовой триангуляции T. Это означает следующее:

  • для каждого первичного ребра Ei в T есть двойное ребро Vi в комплексе Вороного.
  • для каждого первичного узла Pi в P есть двойная ячейка Vc в комплексе Вороного.

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

Эта двойственность подразумевает следующий алгоритм построения комплекса Вороного:

calculate circumcentres CC for all triangles in T

for (all edges Ei in T)
    find triangles [Ti,Tj] in T adjacent to edge Ei
    push voronoi edge Vi between centres [CC(Ti),CC(Tj)]
    associate edge Vi with voronoi cells associated with edge endpoints [Pi,Pj] in Ei
endfor

Применение этого на практике дает следующий комплекс вороного для вашей сетки:

voro

Как отмечали другие, ваш вопрос очень обширный, и я не буду пытаться здесь отвечать на все.


Я сделал набор процедур построения двойной сетки, доступный здесь . Тем не менее, основываясь на множестве писем, которыми вы меня засыпали за выходные, позвольте мне сделать несколько замечаний: (i) вам следует приложить некоторые усилия, чтобы немного понять вычислительную геометрию - не используйте просто слепо предоставленный код, и (ii) если вы действительно используете предоставленный код, убедитесь, что вы приложили усилия, чтобы ссылаться на него надлежащим образом.

person Darren Engwirda    schedule 26.11.2014
comment
Буду признателен, если вы поможете мне в дальнейшем разработке этого алгоритма в MATLAB. Спасибо - person Adesola Ademiloye; 27.11.2014
comment
@ Доктор Даррен, примите во внимание мою почту и запрос выше. - person Adesola Ademiloye; 29.11.2014