Тріангуляція множини точок в евклідовому просторі — це симпліційний комплекс, що охоплює опуклу оболонку, і вершини якого належать [1]. У площині (коли — це множина точок з ), триангуляція складається з трикутників разом із їхніми ребрами та вершинами. Деякі автори вимагають, щоб усі точки були вершинами його тріангуляції[2]. У цьому випадку тріангуляція множини точок в площині можна також визначити як максимальний набір ребер, які не перетинаються та з'єднують точки . У площині, тріангуляція — це особливі випадки плоских прямолінійних графів.
Тріангуляція має численні застосування, та існує сенс у побудові «гарних» тріангуляцій множини точок за певними критеріями, наприклад, тріангуляція мінімальної ваги[en]. Іноді бажано мати тріангуляції зі спеціальними властивостями, наприклад, коли всі трикутники мають великі кути, що, в свою чергу, дозволяє уникнути довгих та вузьких «осколкових» трикутників[3].
Для заданої множини ребер, що з'єднують точки площини, задача визначення того, чи містять вони триангуляцію, є NP-повною[4].
Регулярні триангуляції
Деякі тріангуляції множини точок можна отримати, якщо «підняти» точки у простір (що означає додати координату для кожної точки ), обчислити опуклу оболонку піднятої множини точок, і зробити проєкцію нижніх граней опуклої оболонки на . Побудовані таким чином тріангуляції називають регулярними тріангуляціями. Якщо ж точки підняти на параболоїд, заданий рівнянням , ця конструкція стає тріангуляцією Делоне. Зауважте, що для того, щоб ця конструкція забезпечувала тріангуляцію, нижня опукла оболонка піднятої множини точок повинна бути симпліційною. Для тріангуляції Делоне це накладає вимогу, щоб ніякі точки не лежали на одній сфері.
Комбінаторика в площині
Кожна тріангуляція будь-якої множини з точок в площині має трикутників і ребер, де — кількість точок множини , що належать опуклій оболонці. Це випливає безпосередньо з формули Ейлера[5].
Алгоритми побудови тріангуляції у площині
Алгоритм розщеплення трикутника:
Знайдіть опуклу оболонку множини точок і тріангулюйте цю оболонку як багатокутник. Для кожної внутрішньої точки додайте ребра, які з'єднують її з трьома вершина трикутника, якому вона належить. Цей процес продовжується, доки не будуть вичерпані всі внутрішні точки[6].
Інкрементальний алгоритм:
Відсортувати точки за x-координатами. Перші три точки визначають трикутник. Розглянемо наступну точку в упорядкованому наборі і з'єднаємо її з усіма раніше розглянутими точками , які видно з точки . Процес додавання по одній точці з , продовжується доки не будуть оброблені всі точки[7].
Часова складність різних алгоритмів
У наступній таблиці подано часову складність побудови тріангуляції множини точок із різними критеріями оптимальності у площині, де — кількість точок.
↑De Loera, Jesús A.; Rambau, Jörg; Santos, Francisco (2010). Triangulations, Structures for Algorithms and Applications. Algorithms and Computation in Mathematics. Т. 25. Springer.
↑Edelsbrunner, Herbert; Tan, Tiow Seng; Waupotitsch, Roman (1992), An O(n2 log n) time algorithm for the minmax angle triangulation, SIAM Journal on Scientific and Statistical Computing, 13 (4): 994—1008, doi:10.1137/0913058, MR1166172.
↑Devadoss, O'Rourke Discrete and Computational Geometry. Princeton University Press, 2011, p. 60.
↑Devadoss, O'Rourke Discrete and Computational Geometry. Princeton University Press, 2011, p. 62.
Edelsbrunner, Herbert; Tan, Tiow Seng; Waupotitsch, Roman (1990). An O(n2log n) time algorithm for the MinMax angle triangulation. Proceedings of the sixth annual symposium on Computational geometry. SCG '90. ACM. с. 44—52. CiteSeerX10.1.1.66.2895. doi:10.1145/98524.98535. ISBN0-89791-362-0.
Vassilev, Tzvetalin Simeonov (2005). Optimal Area Triangulation(PDF) (Ph.D.). University of Saskatchewan, Saskatoon. Архів оригіналу(PDF) за 13 серпня 2017. Процитовано 29 листопада 2019.