Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЗ 7.doc
Скачиваний:
52
Добавлен:
04.11.2018
Размер:
665.09 Кб
Скачать
  1. Описание базового алгоритма триангуляции Делоне

Одно и то же множество можно триангулировать разными способами. Все алгоритмы построения триангуляции Делоне можно условно разделить на два класса: построение триангуляции по заданному набору точек и приведение уже отстроенной триангуляции к виду триангуляции Делоне. Нас изначально интересует только построение триангуляции Делоне на основе заданного набора точек. Поэтому рассмотрим, для начала, классический алгоритм построения триангуляции Делоне, который иногда называют декрементным.

Схема алгоритма:

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

  2. Поиск второй ближайшей точки, соединяющий точки отрезок является исходной базой для дальнейших построений.

  3. Поиск в левой полуплоскости от базового отрезка точки, которая в совокупности с уже входящими в триангуляцию рёбрами не нарушает условие Делоне. Если в левой полуплоскости нет точек, попытка повторяется для правой полуплоскости. В соответствии с этим все рёбра, образующие триангуляцию можно разделить на три группы:

  • Рёбра, которые не принадлежат триангуляции Делоне.

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

  • Рёбра, образующие триангуляцию Делоне.

На этом этапе базовое ребро относится ко второму типу, так как для него неизвестен треугольник, которому он принадлежит.

  1. На следующем шаге определяется точка, образующая треугольник с текущим ребром, удовлетворяющий условию Делоне. Поиск нужных вершин всегда производится в левой полуплоскости относительно базового ребра. Вновь полученные рёбра из первой группы переходят во вторую (они обозначены толстыми линиями), то есть для них пока неизвестен второй треугольник или их принадлежность границе. Исходное ребро переходит в третью группу – является частью триангуляции Делоне. Если найти точку, удовлетворяющую условию Делоне невозможно, то ребро предполагается граничным.

  2. Процесс продолжается до тех пор, пока вершинами треугольников не будут закреплены все точки исходного множества. В конечном итоге триангуляция состоит из набора рёбер третьей группы.

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

Рис. 1: Наращивание триангуляции Делоне. Рёбра, входящие в состав границы, выделены толстой линией

Недостатки данного алгоритма:

  1. Это алгоритм класса n**2, так как требуется аналитическое сравнение каждой точки со всеми остальными.

  2. Алгоритм использует постоянно вычисляемые тригонометрические функции, что резко замедляет процесс.

  3. При исследовании взаимоотношения точек и базового отрезка сплошь и рядом возникают очень малые (стремящиеся к нулю) углы, и при использовании тригонометрических функций постоянно возникает опасность исчезновения порядка и деления на 0 в связи с ограниченной точностью представления данных в компьютере, эта ситуация требует постоянной дополнительной обработки.

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