Чи багатокутники Тіссена те саме, що багатокутники Вороного? Я використовую ArcMap 10, а також QGIS 2.4, і я хотів би дізнатися точну різницю (якщо така є) між двома методами.
Чи багатокутники Тіссена те саме, що багатокутники Вороного? Я використовую ArcMap 10, а також QGIS 2.4, і я хотів би дізнатися точну різницю (якщо така є) між двома методами.
Відповіді:
Так, вони те саме. У галузі ГІС ми, як правило, називаємо їх полігонами Тіссена, після американського метеоролога, який часто відвідував їх використання. В інших галузях, зокрема математиці та інформатиці, їх в основному називають діаграмами Вороного на честь математика Георгія Вороного. Обидва варіанти використання є прийнятними.
Ми не можемо знати точну різницю, оскільки не можемо побачити вихідний код реалізації ESRI. Однак з короткого погляду випливає, що в двох реалізаціях насправді використовується той самий метод, який є грубим перекладом класичного алгоритму оперативної лінії Стівена Фортуна .
Тут ви можете ознайомитись із фактичним вихідним кодом, який використовується у QGIS. Він включає наступний опис:
For programmatic use two functions are available:
computeVoronoiDiagram(points)
Takes a list of point objects (which must have x and y fields).
Returns a 3-tuple of:
(1) a list of 2-tuples, which are the x,y coordinates of the
Voronoi diagram vertices
(2) a list of 3-tuples (a,b,c) which are the equations of the
lines in the Voronoi diagram: a*x + b*y = c
(3) a list of 3-tuples, (l, v1, v2) representing edges of the
Voronoi diagram. l is the index of the line, v1 and v2 are
the indices of the vetices at the end of the edge. If
v1 or v2 is -1, the line extends to infinity.
computeDelaunayTriangulation(points):
Takes a list of point objects (which must have x and y fields).
Returns a list of 3-tuples: the indices of the points that form a
Delaunay triangle.
Зараз ми не можемо побачити фірмовий код ESRI, який керує їх інструментом , але опис їх документації відразу виявляє, що основа обох інструментів однакова:
Проксимальні багатокутники Тіссена будуються так:
Усі точки тріангульовані в трикутну неправильну мережу (TIN), яка відповідає критерію Делоне. Перпендикулярні бісектриси для кожного краю трикутника генеруються, утворюючи ребра багатокутників Тіссена. Місце, в якому перетинаються бісектриси, визначає розташування вершин багатокутника Тіссена.
Фактичні нюанси коду, що керує двома, очевидно відрізняються, оскільки було показано, що в перекладі Білла Саймона відомі помилки , яких немає у версії ESRI.
Існує (як було сказано в коментарях вище) кілька інших способів генерування діаграм Вороного, навіть у ГІС, наприклад, ця растрова методологія . Існують також інші методи, засновані на векторному для генерування діаграм Вороного в ГІС.
У кожного з методів є кілька переваг і недоліків. Наприклад, алгоритм Фортуна є відносно швидким і добре задокументованим, але в даний час невідомий спосіб генерувати мультиплікативно зважені діаграми Вороного за допомогою його прямої реалізації.
Растрові методи, як правило, набагато повільніше обчислюються, але дозволяють створювати різні типи діаграм Вороного ( наприклад, найдальші точкові діаграми Вороного ) без повністю винайдення методології.
Повне розкриття: Я працював науковим співробітником професора, який написав документ за методологією створення растрових діаграм.
TL; DR: Хоча реальні реалізації дещо відрізняються, вони базуються на одному і тому ж алгоритмі, і обидва повинні давати однаковий результат (окрім кількох крайніх випадків, які призводять до помилок, зазначених у вищезазначеному питанні Дена Паттерсона).