У обчислювальної геометрії тріангуляція многокутника — це розкладання полігональної області (простого многокутника) P на множину трикутників, тобто знаходження множини трикутників, які попарно не перетинаються і об'єднання яких дорівнює P.
Тріангуляцію можна розглядати як спеціальний випадок плоского прямолінійного графу. Коли немає дірок або доданих точок, тріангуляція утворює максимальний зовніпланарний граф.
Тріангуляція многокутника без додаткових вершин
Згодом був запропонований ряд алгоритмів для тріангуляції многокутника.
Особливі випадки
Дуже просто тріангулювати будь-який опуклий многокутник за лінійний час на віяло трикутників, якщо послідовно проводити діагоналі з однієї фіксованої вершини до всіх інших вершин.
Загальна кількість способів тріангулювати опуклий n-кутник діагоналями, які не перетинаються буде (n–2)-ге число Каталана, яке дорівнює . Розв'язок був знайдений Леонардом Ейлером.
Монотонний многокутник може бути тріангульований за лінійний час за допомогою алгоритму [en] і Д. Я. Монтуно, або алгоритмом [en].
Метод відтину вух
Один із способів тріангуляції простого многокутника заснований на теоремі про два вуха, яка стверджує, що будь-який простий многокутник з не менш ніж чотирма вершинами без дірок має принаймні два («вуха»), які є трикутниками, що можна відтяти, бо діагональ розташована повністю всередині многокутника. Алгоритм зводиться до знаходження такого вуха, яке потім видаляється (це призводить до появи нового многокутника, який все ще відповідає наведеним умовам) і операція повторюється до тих пір, поки не залишиться тільки один трикутник.
Цей алгоритм простий в реалізації, але він виконується повільніше ніж деякі інші алгоритми і можливий тільки для многокутників без дірок. Реалізація, яка зберігає окремі списки опуклих і увігнутих вершин, буде виконуватися за O(n2) час. Цей метод відомий як відтинання або відсікання вух. Ефективний алгоритм відсікання вух був запропонований Хоссама Ельгінді, Хейзелем Евереттом і [en].
Тріангуляція монотонного многокутника
Ланцюг C складений з відрізків називається монотонним щодо прямої L, якщо кожна пряма, ортогональна L, перетинає C не більше одного разу. Ми називаємо такі ланцюги монотонними ланцюгами. многокутник P буде монотонним відносно прямої L, якщо його межу можна розбити на два ланцюги, кожен з яких монотонний щодо L. Ми називаємо такі многокутники монотонними многокутниками. Ми говоримо, що многокутник P є горизонтально монотонним (або x-монотонним), якщо P монотонний відносно осі х.
Ми можемо тріангулювати монотонний многокутник за час, де n — кількість вершин монотонного многокутника. Алгоритм описаний у розділі 3.3 книги М. Берг та інші, «Обчислювальна геометрія: алгоритми і програми» (2-е видання).
Розкладання простого многокутника на монотонні частини
Якщо простий многокутник не є монотонним, його можна зробити монотонним за час , якщо використати алгоритм замітаючої прямої. Більш детально про це можна прочитати у розділі 3.2 книги М. Берг та інші, «Обчислювальна геометрія: алгоритми і програми» (2-е видання).
Двоїстий граф тріангуляції
Корисний граф, який часто асоціюється з тріангуляцією многокутника P, це двоїстий граф. Тріангуляція TP многокутника P, визначає граф G(TP), множина вершин якого є трикутниками TP, причому дві вершини (трикутники) суміжні тоді і тільки тоді, коли відповідні їм трикутники мають спільну сторону. Легко помітити, що G(TP) є деревом з вершинами максимальної степені 3.
Метод Фройденталя (тріангуляція Куна)
Тріангуляція є розбиттям на симплекси цілого простору Для побудови увесь простір спочатку розбивається на куби, а потім кожний куб — на симплекси.
Для того, щоб перебір симплексів був організований належним чином, кожній вершині тріангуляції присвоюється деяка мітка. Мітки можуть бути або векторами (із дійсними координатами) або (скалярними) цілими числами й називаються відповідно векторними або цілочисельними. Векторні мітки частіше є векторами вигляду де — вершина тріангуляції. Чим більше точок або променів, уздовж яких алгоритм може покидати точку початку пошуку, тим вище його обчислювальна ефективність. Велика кількість міток має й зворотну сторону: чим більше міток, тим більше часу потрібно для їх обчислення. Для того, щоб симпліційний алгоритм був достатньо швидким, обчислення використовуваних ним міток повинні бути ефективними. Ефективність обчислення міток може бути забезпечена регулярністю розташування променів, уздовж яких алгоритм може покидати точку початку пошуку.
Обчислювальна складність
До 1988 року відкритим залишалось питання про те, чи можлива тріангуляція простого многокутника за час швидший ніж O(n log n). Поки Tarjan та Van Wyk, (1988) не знайшли алгоритм тріангуляції, який виконувався за час O(n log log n), згодом спрощений Kirkpatrick, Klawe та Tarjan, (1992). Потім було декілька поліпшених методів зі складністю O(n log* n) (на практиці не відрізнялись від (лінійного часу)).
У 1991 році [en] показав, що будь-який простий многокутник може бути тріангульований за лінійний час, хоча запропонований алгоритм був дуже складним. Відомий також більш простий увипадковлений алгоритм з очікуваним лінійним часом виконання.
Алгоритм декомпозиції Зейделя і метод тріангуляції Шазеля детально обговорюються в Li та Klette, (2011).
Часова складність алгоритму тріангуляції n-вершинного многокутника з дірками має нижню межу Ω(n log n).
Пов'язані проблеми
- Тріангуляція многокутника є окремими задачами тріангуляції і [en].
- [en] — така тріангуляція, в якій метою є мінімізація загальної довжини ребер.
- Тріангуляція множини точок — це тріангуляція многокутника, який є опуклою оболонкою цієї множини точок. Тріангуляція Делоне — ще один спосіб побудувати тріангуляцію множини точок.
- [en] трикутниками, в якому трикутники можуть перекриватися.
- [en], де мета полягає в тому, щоб покрити всю площину трикутниками заздалегідь визначеної форми.
Див. також
Примітки
- , , Mark Overmars та (2000), Computational Geometry (вид. 2nd revised), Springer-Verlag, ISBN Chapter 3: Polygon Triangulation: pp.45–61.
- , The Math Book, Sterling, 2009: p. 184.
- ; Montuno, D. Y. (1984), Triangulating simple polygons and equivalent problems, , 3 (2): 153—174, doi:10.1145/357337.357341, ISSN 0730-0301
- Toussaint, Godfried T. (1984), «A new linear algorithm for triangulating monotone polygons», Pattern Recognition Letters, 2 (March):155–158.
- Meisters, G. H., «Polygons have ears.» American Mathematical Monthly 82 (1975). 648—651
- ElGindy, H.; Everett, H.; Toussaint, G. T. (1993). Slicing an ear using prune-and-search. Pattern Recognition Letters. 14 (9): 719—722. doi:10.1016/0167-8655(93)90141-y.
- (PDF). Архів оригіналу (PDF) за 9 червня 2020. Процитовано 9 червня 2020.
- . www.mathnet.ru. Архів оригіналу за 9 червня 2020. Процитовано 9 червня 2020.
- Tarjan, Robert E.; Van Wyk, Christopher J. (1988), An O(n log log n)-time algorithm for triangulating a simple polygon, , 17 (1): 143—178, CiteSeerX 10.1.1.186.5949, doi:10.1137/0217010, MR 0925194.
- ; ; Tarjan, Robert E. (1992), Polygon triangulation in O(n log log n) time with simple data structures, , 7 (4): 329—346, doi:10.1007/BF02187846, MR 1148949.
- ; Tarjan, Robert; van Wyk, Christopher J. (1989), A fast Las Vegas algorithm for triangulating a simple polygon, , 4: 423—432, doi:10.1007/BF02187741.
- (1991), A Simple and Fast Incremental Randomized Algorithm for Computing Trapezoidal Decompositions and for Triangulating Polygons, , 1: 51—64, doi:10.1016/0925-7721(91)90012-4
- ; Cole, Richard; Tarjan, Robert E. (1992), Randomized parallel algorithms for trapezoidal diagrams, International Journal of Computational Geometry & Applications, 2 (2): 117—133, doi:10.1142/S0218195992000081, MR 1168952.
- (1991), Triangulating a Simple Polygon in Linear Time, Discrete & Computational Geometry, 6: 485—524, doi:10.1007/BF02574703, ISSN 0179-5376
- ; ; Ramos, Edgar A. (2001), , Discrete & Computational Geometry, 26 (2): 245—265, doi:10.1007/s00454-001-0027-x, ISSN 0179-5376, архів оригіналу за 23 липня 2018, процитовано 22 липня 2018
- Li, Fajie; Klette, Reinhard (2011), Euclidean Shortest Paths, Springer, doi:10.1007/978-1-4471-2256-2, ISBN .
Додаткові джерела
- , Алгоритм замітаючої прямої.
- Пояснення теселяції (розбиття) в OpenGL GLU від Song Ho [ 13 липня 2018 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U obchislyuvalnoyi geometriyi triangulyaciya mnogokutnika ce rozkladannya poligonalnoyi oblasti prostogo mnogokutnika P na mnozhinu trikutnikiv tobto znahodzhennya mnozhini trikutnikiv yaki poparno ne peretinayutsya i ob yednannya yakih dorivnyuye P Triangulyaciyu mozhna rozglyadati yak specialnij vipadok ploskogo pryamolinijnogo grafu Koli nemaye dirok abo dodanih tochok triangulyaciya utvoryuye maksimalnij zovniplanarnij graf Triangulyaciya mnogokutnika bez dodatkovih vershinZgodom buv zaproponovanij ryad algoritmiv dlya triangulyaciyi mnogokutnika Osoblivi vipadki 42 mozhlivih triangulyaciyi dlya opuklogo semikutnika 7 storonnij opuklij mnogokutnik Ce chislo ye 5 te chislo Katalana Duzhe prosto triangulyuvati bud yakij opuklij mnogokutnik za linijnij chas na viyalo trikutnikiv yaksho poslidovno provoditi diagonali z odniyeyi fiksovanoyi vershini do vsih inshih vershin Zagalna kilkist sposobiv triangulyuvati opuklij n kutnik diagonalyami yaki ne peretinayutsya bude n 2 ge chislo Katalana yake dorivnyuye n n 1 2 n 4 n 2 displaystyle tfrac n cdot n 1 cdot ldots cdot 2n 4 n 2 Rozv yazok buv znajdenij Leonardom Ejlerom Monotonnij mnogokutnik mozhe buti triangulovanij za linijnij chas za dopomogoyu algoritmu en i D Ya Montuno abo algoritmom en Metod vidtinu vuh Kozhen prostij bagatokutnik maye dva vuha Pershe vuho yake vidtinayetsya zatemnene Odin iz sposobiv triangulyaciyi prostogo mnogokutnika zasnovanij na teoremi pro dva vuha yaka stverdzhuye sho bud yakij prostij mnogokutnik z ne mensh nizh chotirma vershinami bez dirok maye prinajmni dva vuha yaki ye trikutnikami sho mozhna vidtyati bo diagonal roztashovana povnistyu vseredini mnogokutnika Algoritm zvoditsya do znahodzhennya takogo vuha yake potim vidalyayetsya ce prizvodit do poyavi novogo mnogokutnika yakij vse she vidpovidaye navedenim umovam i operaciya povtoryuyetsya do tih pir poki ne zalishitsya tilki odin trikutnik Cej algoritm prostij v realizaciyi ale vin vikonuyetsya povilnishe nizh deyaki inshi algoritmi i mozhlivij tilki dlya mnogokutnikiv bez dirok Realizaciya yaka zberigaye okremi spiski opuklih i uvignutih vershin bude vikonuvatisya za O n2 chas Cej metod vidomij yak vidtinannya abo vidsikannya vuh Efektivnij algoritm vidsikannya vuh buv zaproponovanij Hossama Elgindi Hejzelem Everettom i en Triangulyaciya monotonnogo mnogokutnika Rozbittya mnogokutnika na monotonni mnogokutniki Lancyug C skladenij z vidrizkiv nazivayetsya monotonnim shodo pryamoyi L yaksho kozhna pryama ortogonalna L peretinaye C ne bilshe odnogo razu Mi nazivayemo taki lancyugi monotonnimi lancyugami mnogokutnik P bude monotonnim vidnosno pryamoyi L yaksho jogo mezhu mozhna rozbiti na dva lancyugi kozhen z yakih monotonnij shodo L Mi nazivayemo taki mnogokutniki monotonnimi mnogokutnikami Mi govorimo sho mnogokutnik P ye gorizontalno monotonnim abo x monotonnim yaksho P monotonnij vidnosno osi h Mi mozhemo triangulyuvati monotonnij mnogokutnik za O n log n displaystyle mathcal O n log n chas de n kilkist vershin monotonnogo mnogokutnika Algoritm opisanij u rozdili 3 3 knigi M Berg ta inshi Obchislyuvalna geometriya algoritmi i programi 2 e vidannya Rozkladannya prostogo mnogokutnika na monotonni chastini Yaksho prostij mnogokutnik ne ye monotonnim jogo mozhna zrobiti monotonnim za chas O n log n displaystyle mathcal O n log n yaksho vikoristati algoritm zamitayuchoyi pryamoyi Bilsh detalno pro ce mozhna prochitati u rozdili 3 2 knigi M Berg ta inshi Obchislyuvalna geometriya algoritmi i programi 2 e vidannya Dvoyistij graf triangulyaciyi Korisnij graf yakij chasto asociyuyetsya z triangulyaciyeyu mnogokutnika P ce dvoyistij graf Triangulyaciya TP mnogokutnika P viznachaye graf G TP mnozhina vershin yakogo ye trikutnikami TP prichomu dvi vershini trikutniki sumizhni todi i tilki todi koli vidpovidni yim trikutniki mayut spilnu storonu Legko pomititi sho G TP ye derevom z vershinami maksimalnoyi stepeni 3 Metod Frojdentalya triangulyaciya Kuna Triangulyaciya K 1 displaystyle K 1 ye rozbittyam na simpleksi cilogo prostoru R d displaystyle mathbb R d Dlya pobudovi K 1 displaystyle K 1 uves prostir R d displaystyle mathbb R d spochatku rozbivayetsya na kubi a potim kozhnij kub na simpleksi Dlya togo shob perebir simpleksiv buv organizovanij nalezhnim chinom kozhnij vershini triangulyaciyi prisvoyuyetsya deyaka mitka Mitki mozhut buti abo vektorami iz dijsnimi koordinatami abo skalyarnimi cilimi chislami j nazivayutsya vidpovidno vektornimi abo cilochiselnimi Vektorni mitki chastishe ye vektorami viglyadu f x x displaystyle f x x de x displaystyle x vershina triangulyaciyi Chim bilshe tochok abo promeniv uzdovzh yakih algoritm mozhe pokidati tochku pochatku poshuku tim vishe jogo obchislyuvalna efektivnist Velika kilkist mitok maye j zvorotnu storonu chim bilshe mitok tim bilshe chasu potribno dlya yih obchislennya Dlya togo shob simplicijnij algoritm buv dostatno shvidkim obchislennya vikoristovuvanih nim mitok povinni buti efektivnimi Efektivnist obchislennya mitok mozhe buti zabezpechena regulyarnistyu roztashuvannya promeniv uzdovzh yakih algoritm mozhe pokidati tochku pochatku poshuku Obchislyuvalna skladnistDo 1988 roku vidkritim zalishalos pitannya pro te chi mozhliva triangulyaciya prostogo mnogokutnika za chas shvidshij nizh O n log n Poki Tarjan ta Van Wyk 1988 ne znajshli algoritm triangulyaciyi yakij vikonuvavsya za chas O n log log n zgodom sproshenij Kirkpatrick Klawe ta Tarjan 1992 Potim bulo dekilka polipshenih metodiv zi skladnistyu O n log n na praktici ne vidriznyalis vid linijnogo chasu U 1991 roci en pokazav sho bud yakij prostij mnogokutnik mozhe buti triangulovanij za linijnij chas hocha zaproponovanij algoritm buv duzhe skladnim Vidomij takozh bilsh prostij uvipadkovlenij algoritm z ochikuvanim linijnim chasom vikonannya Algoritm dekompoziciyi Zejdelya i metod triangulyaciyi Shazelya detalno obgovoryuyutsya v Li ta Klette 2011 Chasova skladnist algoritmu triangulyaciyi n vershinnogo mnogokutnika z dirkami maye nizhnyu mezhu W n log n Pov yazani problemiTriangulyaciya mnogokutnika ye okremimi zadachami triangulyaciyi i en en taka triangulyaciya v yakij metoyu ye minimizaciya zagalnoyi dovzhini reber Triangulyaciya mnozhini tochok ce triangulyaciya mnogokutnika yakij ye opukloyu obolonkoyu ciyeyi mnozhini tochok Triangulyaciya Delone she odin sposib pobuduvati triangulyaciyu mnozhini tochok en trikutnikami v yakomu trikutniki mozhut perekrivatisya en de meta polyagaye v tomu shob pokriti vsyu ploshinu trikutnikami zazdalegid viznachenoyi formi Div takozhChislo Katalana Planarnij grafPrimitki Mark Overmars ta 2000 Computational Geometry vid 2nd revised Springer Verlag ISBN 3 540 65620 0 Chapter 3 Polygon Triangulation pp 45 61 The Math Book Sterling 2009 p 184 Montuno D Y 1984 Triangulating simple polygons and equivalent problems 3 2 153 174 doi 10 1145 357337 357341 ISSN 0730 0301 Toussaint Godfried T 1984 A new linear algorithm for triangulating monotone polygons Pattern Recognition Letters 2 March 155 158 Meisters G H Polygons have ears American Mathematical Monthly 82 1975 648 651 ElGindy H Everett H Toussaint G T 1993 Slicing an ear using prune and search Pattern Recognition Letters 14 9 719 722 doi 10 1016 0167 8655 93 90141 y PDF Arhiv originalu PDF za 9 chervnya 2020 Procitovano 9 chervnya 2020 www mathnet ru Arhiv originalu za 9 chervnya 2020 Procitovano 9 chervnya 2020 Tarjan Robert E Van Wyk Christopher J 1988 An O n log log n time algorithm for triangulating a simple polygon 17 1 143 178 CiteSeerX 10 1 1 186 5949 doi 10 1137 0217010 MR 0925194 Tarjan Robert E 1992 Polygon triangulation in O n log log n time with simple data structures 7 4 329 346 doi 10 1007 BF02187846 MR 1148949 Tarjan Robert van Wyk Christopher J 1989 A fast Las Vegas algorithm for triangulating a simple polygon 4 423 432 doi 10 1007 BF02187741 1991 A Simple and Fast Incremental Randomized Algorithm for Computing Trapezoidal Decompositions and for Triangulating Polygons 1 51 64 doi 10 1016 0925 7721 91 90012 4 Cole Richard Tarjan Robert E 1992 Randomized parallel algorithms for trapezoidal diagrams International Journal of Computational Geometry amp Applications 2 2 117 133 doi 10 1142 S0218195992000081 MR 1168952 1991 Triangulating a Simple Polygon in Linear Time Discrete amp Computational Geometry 6 485 524 doi 10 1007 BF02574703 ISSN 0179 5376 Ramos Edgar A 2001 Discrete amp Computational Geometry 26 2 245 265 doi 10 1007 s00454 001 0027 x ISSN 0179 5376 arhiv originalu za 23 lipnya 2018 procitovano 22 lipnya 2018 Li Fajie Klette Reinhard 2011 Euclidean Shortest Paths Springer doi 10 1007 978 1 4471 2256 2 ISBN 978 1 4471 2255 5 Dodatkovi dzherela Algoritm zamitayuchoyi pryamoyi Poyasnennyateselyaciyi rozbittya v OpenGL GLU vid Song Ho 13 lipnya 2018 u Wayback Machine