Изменения

Перейти к: навигация, поиск

Триангуляция Делоне

756 байт добавлено, 21:38, 11 февраля 2014
Вставка точки, лежащей внутри триангуляции
=== Вставка точки ===
==== Вставка точки, лежащей внутри триангуляции ====
{{TODO[[Файл:Insert in triangle.png|t=Надо бы вставить сюда картинки}}200px|thumb|left|Вставка в треугольник]][[Файл:Insert on edge.png|200px|thumb|right|Вставка на ребро]]
Для начала локализуемся: поймём, в каком фейсе лежит точка (или на каком ребре). Вставляем Если точка лежит внутри фейса, добавляем три ребра, сам фейс превращаем в один из новых смежных с вставляемой точкой и добавялем ещё два фейса.  Если же точка лежит на ребре, два смежных с ребром фейса превращаем в два новых, добавляем ещё два, а так же превращаем ребро, на которое вставляется точка, в ребро, которое заканчивается в этой точке, и вставляем три новых. Итого у нас появилось несколько новых рёбер. Они все хорошие ({{TODO|t=Доказать, почему}}), плохими могут оказаться только рёбра, противолежащие вставленной точке. Флипаем рёбра, пока триангуляция не станет хорошей.
Среднее число флипов — <tex>O(1)</tex> ({{TODO|t=Доказать, почему}}). Поэтому время вставки целиком зависит от времени локализации.
 
==== Вставка точки, лежащей снаружи триангуляции ====
Представим, что вне триангуляции — бесконечные треугольники, основания которых — рёбра выпуклой оболочки триангуляции, а противолежащая ребру вершина — это бесконечно удалённая точка. Тогда понятно, что вставка точки, не лежащей в триангуляции, сведётся к вставке точки внутрь триангуляции, если мы научимся обрабатывать бесконечные фейсы.
355
правок

Навигация