Триангуляция Делоне многомерных поверхностей

Вестник СамГУ — Естественнонаучная серия. 2010. № 4(78).

УДК 514.174

51

ТРИАНГУЛЯЦИЯ ДЕЛОНЕ МНОГОМЕРНЫХ ПОВЕРХНОСТЕЙ

© 2010 В.А. Клячин, А.А. Широкий1

В статье вводится понятие триангуляции Делоне для поверхностей и доказывается аналог леммы Б. Делоне о пустом шаре.

Ключевые слова: триангуляция, симплекс, условия пустоты сферы.

1. Определение триангуляции Делоне

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

Определение 1.1. Если внутрь шара, описанного вокруг любого построенного n-мерного симплекса, не попадает ни одна из заданных точек триангуляции, то говорят, что триангуляция удовлетворяет условию Делоне и называется триангуляцией Делоне.

2. Лемма Делоне о пустом шаре

В работе [1] была доказана следующая весьма общая лемма:

Лемма 2.1. Пусть T — совершенно произвольные тетраэдры, регулярно разбивающее n-мерное пространство, полностью соприкасающиеся (n — 1)-мерными гранями, и такие, что любая ограниченная область (т. е. область ограниченного диаметра) имеет общие точки только с конечным числом этих тетраэдров; тогда необходимое и достаточное условие того, что никакой из шаров, описанных вокруг любого из этих тетраэдров, не содержит внутри себя никаких вершин других тетраэдров, есть условие, что это будет иметь место для каждой пары двух тетраэдров, соприкасающихся по (n — 1)-мерной грани, иначе говоря, в каждой такой паре вершина одного из тетраэдров не должна быть внутри шара, описанного вокруг другого тетраэдра, и обратно.

Эта лемма открывает путь к созданию довольно быстрых (O(N2) или даже O(N log N), где N — число вершин триангуляции) алгоритмов построения триангуляции Делоне и, сверх того, служит критерием корректности этих алгоритмов.

1Клячин Владимир Александрович (klchnv@mail.ru), Широкий Александр Александрович

(mhwide@hotmail.com), кафедра компьютерных наук и экспериментальной математики Волгоградского государственного университета, 400062, Россия, г. Волгоград, пр. Университетский, 100.

Далее мы приведем один из алгоритмов построения триангуляции и покажем существенность приведенной леммы для доказательства его корректности.

3. Алгоритм построения триангуляции Делоне

Приведем схему алгоритма построения триангуляции Делоне в классическом варианте (см. [2]). Данная схема позволяет понять существенность леммы 2.1 о пустом шаре в указанном алгоритме. Согласно [2], мы обобщаем представленный там алгоритм на многомерный случай (подробнее, см. [3]):

Симплексом Б в вершинах хо, х\,..., хп; г = 1, 2,...,М мы называем выпуклую оболочку точек хг. Симплекс Б называется невырожденным, если векторы Х1 — — Х0,Х2 — хо,...,хп — хо линейно независимы. В дальнейшем будем рассматривать только такие наборы точек Рг, что любой симплекс в вершинах из Р'г является невырожденным.

Прежде всего, приведем одно свойство шаров, описанных вокруг симплексов. Рассмотрим два симплекса Б1 и Б2, имеющих общую (п — 1)-мерную грань О. Пусть А и В — вершины симплексов, не принадлежащие грани О. Тогда если шар, описанный вокруг Б1, не содержит внутри себя вершину В симплекса Б2, то шар, описанный вокруг Б2, не содержит внутри себя вершины А.

Действительно, пусть £г — шар, описанный вокруг Бг. Пусть £± — части, на которые разбиваются эти шары, лежащие в полупространствах П±, определяемых плоскостью П, содержащей грань О. Предположим, что вершина В € П-, а, значит, В € £-. Поэтому Х- лежит внутри £-. Так как шары £1 и £2 в пересечении образуют (п — 1)-мерный шар, лежащий в П, то, если предположить, что вершина А лежит внутри £2, получается, что и весь шар £1 лежит внутри шара £2, касаясь его в п точках — вершинах грани О. Отсюда следует, что шары £2 и £1 совпадают. Это противоречит тому, что точка А, по предположению, лежит внутри шара £2.

Алгоритм состоит из ряда шагов, выполняющихся в цикле. Заметим, что в [4] проведен анализ других существующих алгоритмов, некоторые из которых неявно используют лемму 2.1 о пустом шаре.

• Строится выпуклая оболочка данной системы точек {Рг}£=1. Здесь мы предполагаем, что никакие п точек данного семейства не лежат на одной гиперплоскости. В предположении, что никакие (п + 1) точек не лежат на одной сфере, триангуляция Делоне строится единственным способом.

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

• Ориентируем этот симплекс относительно внешней нормали к границе выпуклой оболочки еопу({Ръ}). Находим точку из семейства {Рг} такую, что описанный шар вокруг полученного симплекса не содержит других точек из {Рг}. Существование такого шара следует из простых геометрических соображений.

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

граней: Ро и Р1. Ро будет содержать те грани, для которых определены тетраэдры по обе ее стороны, или если по одну ее сторону определен тетраэдр, а по другую — неограниченная область. На первом шаге в Ро записана грань Со, а Р1 = 0.

• Для каждой грани е из Ро рассмотрим семейство шаров, содержащих ее грани. Все их центры расположены на прямой, проходящей через центр описанной около этой грани (п — 2)-мерной сферы. Находим точку нашего набора, принадлежащую границе одного из шаров семейства, который в свою очередь не содержит внутри себя других точек, причем эту точку ищем только среди точек, лежащих в полупространстве, куда указывает нормаль к е. Если такой точки нет, то просто такую грань перемещаем из Ро в Р1. Если точка найдется, то строим новый тетраэдр, и его грани, кроме текущей е, помещаем в Ро, а саму е перемещаем в Р1. Каждую новую грань ориентируем внешней нормалью тетраэдра.

Отметим, что свойство "пустого шара" проверяется частично. Но свойство описанных шаров, приведенное в начале данного пункта статьи, и лемма Делоне, сформулированная в предыдущем пункте, обеспечивают "пустоту шара" глобально.

• Далее процесс повторяется в цикле, пока все грани из Ро не перейдут в список Р1.

В данной работе классическое определение триангуляции Делоне обобщается на случай триангуляции поверхностей, и мы доказываем аналог леммы Делоне о "пустом шаре" для триангуляции поверхностей, что позволит конструировать аналогичные алгоритмы триангуляции поверхностей. Мы пока ограничимся поверхностями, заданными гладкими функциями.

4. Триангуляция Делоне поверхностей

Рассмотрим некоторую п-мерную поверхность Р в пространстве Кп+1, заданную графиком С2 -гладкой функции хп+1 = /(х1, ...,хп); х € О С И". В настоящей статье под к-мерным симплексом Б в И" мы понимаем выпуклую оболочку к +1 точек = 0,...,к ^ п таких, что векторы р1 — ро,р2 — Ро,...,Рк — Ро линейно независимы. Определим отображение проекции

п : Р ^ В,п(хЛ,..., Х"+1) = (х1, ...,Хп).

Пусть Р^^ = 1,...,М — некоторый набор точек Р^ € Ип+1, лежащих на поверхности Р и таких, что любой симплекс в вершинах из Р.\ является невырожденным. Обозначим через Р/ = п(Р^) проекцию точки Р.\ в область О. Будем рассматривать триангуляцию поверхности Р п-мерными симплексами, построенными на множестве Р^. Здесь под триангуляцией поверхности мы понимаем такой набор Т п-мерных симплексов Б1,..., Бт, что:

1) каждая точка Р^ заданного набора является вершиной одного из симплексов Б € Т;

2) каждая вершина любого симплекса Б € Т является одной из точек Pi,i = = 1,...,М;

3) внутренность пересечения любых двух симплексов пуста;

4) проекция системы симплексов Б^ € Т,з = 1,...,то является обычной триангуляцией набора точек Р/.

Определение 3.1. Пусть Б — некоторый п-мерный симплекс в И"+1. Описанным шаром Г (Б) для Б мы назовем (п + 1)-мерный шар, содержащий симплекс и имеющий наименьшее возможное значение радиуса.

Определение 3.2. Будем говорить, что триангуляция поверхности Г удовлетворяет условию Делоне, если для любого симплекса триангуляции описанный шар не содержит внутри себя ни одной вершины триангуляции.

Определение 3.3. Будем говорить, что для двух п-мерных симплексов, пересекающихся по общей (п — 1)-мерной грани, выполнено условие "пустого шара'', если описанный шар одного симплекса не содержит внутри себя вершин другого симплекса.

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

Теорема 3.1. Пусть поверхность Г .задана над выпуклой областью Б С И". Триангуляция этой поверхности, для которой любая пара симплексов, пересекающихся по обш^й (п — 1) -мерной грани, удовлетворяет условию пустого шара, является триангуляцией Делоне.

Доказательство. Рассмотрим некоторую триангуляцию множества точек Рг, обладающую свойством, указанным в теореме. Для двух соседних симплексов Б', Б'' данной триангуляции построим гиперплоскость П, проходящую через пересечение гиперсфер дГ(Б') П дГ(Б"). Рассмотрим произвольный симплекс Б заданной триангуляции и некоторую вершину А произвольного симплекса триангуляции, отличного от Б. Построим луч ОА и последовательность указанных плоскостей, которые пересекаются этим лучом следующим образом. Первый луч пересекает одну из плоскостей, проходящих через одну из граней симплекса Б. Обозначим эту плоскость через П1. Эта плоскость также содержит одну из граней соседнего симплекса Б1. Далее луч пересекает одну из плоскостей, содержащих грани симплекса Б1. Обозначим эту плоскость через П2. Плоскость П2 содержит одну из граней соседнего симплекса Б2. Поступая таким образом, получим последовательность плоскостей П1, П2,..., П^ и последовательность симплексов Б1, Б2,..., Б^. Также обозначим через П± полупространства, определяемые плоскостями Пг, такие, что луч ОА при пересечении плоскости Пг выходит из П— и входит в П+. Ясно, что А € Б^. Предположим, что А € Б2. Согласно построению плоскостей Пг, выполнено А € П+. Заметим, что в силу свойств шаров будет иметь место одно из следующих включений:

Г (Б) П П+ С Г(Б1) П П+

или

Г (Б1) П П+ С Г (Б) П П+.

Пусть В — вершина симплекса Б1, не принадлежащая плоскости П1 . По предположению теоремы В € Г (Б), но В € Г (Б1). Таким образом, имеет место включение

Г (Б) П П+ С Г (Б1) П П+,

что делает невозможным принадлежность Л € Р(Б), так как из условий теоремы должно быть выполнено Л € Р(Б1). Аналогично по индукции доказывается, что при условии Л € Бк, к = 3,..., Ь будет выполнено Л € Р(Б). Теорема доказана.

Литература

[1] Delaunay B. Sur la sphere vide. A la memoire de Georges Voronoï // Изв. АН СССР, 1934. № 6. С. 793-800.

[2] Шикин Е.В., Боресков А.В. Компьютерная графика. Полигональные модели. М.: Диалог МИФИ, 2000.

[3] Клячин В.А. Об одном обобщении условия Делоне // Вестник Томского государственного университета. Сер.: Математика и механика. 2008. № 1(2). С. 48-50.

[4] Скворцов А.В., Мирза Н.С. Алгоритмы построения и анализа триангуляции. Томск: Изд-во Томск. ун-та, 2006. 168 с.

Поступила в редакцию 20/IV/2010; в окончательном варианте — 20/IV/2010.

DELAUNAY TRIANGULATION OF MULTIDIMENSIONAL

SURFACES

© 2010 V.A. Klyachin, A.A. Shiroky2

This paper introduced the definition of Delaunay triangulation of surfaces and proved an analogue of the B. Delaunay lemma of empty sphere.

Key words: triangulation, simplex, empty sphere condition.

Paper received 20//V/2010. Paper accepted 20//V/2010.

2Klyachin Vladimir Alexandrovich (klchnvamail.ru), Shiroky Alexandr Alexandrovich (mhwideahotmail.com), Dept. of Computer Science and Experimental Mathematics, Volgograd State University, Volgograd, 400062, Russia.