Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
109
Добавлен:
01.05.2014
Размер:
3.72 Mб
Скачать

Введение

Выпуклые оболочки в трехмерном пространстве используются в различных приложениях. Например, они используются для ускорения нахождения коллизий в компьютерной анимации. Предположим, мы хотим проверить, пересекаются ли два объекта и . Если в большинстве случаев объекты не пересекаются, то следующая стратегия дает выигрыш. Аппроксимируем объект более простым объектами исоответственно, которые содержат в себе исходные объекты. Если мы хотим проверить, пересекаются лии , то сначала следует проверить, пересекаются ли и. Только в случае, еслиипересекаются, то необходимо проверить пересекаются ли исходные объекты.

Рисунок 1

Аппроксимация объекта ограничивающей сферой и выпуклой оболочкой

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

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

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

Сложность представления выпуклой оболочки

Напомним [1], что в двумерном случае выпуклая оболочка представляет упорядоченную последовательность вершин. Данное ранее определение выпуклой оболочки также распространяется и на трехмерный случай.

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

Рисунок 2

многогранника называется ребро одной из его граней.

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

Как известно [2], для связных планарных графов с вершинами,ребрами игранями справедлива формула Эйлера:, а поскольку граница выпуклого политопа представляет собой планарный граф – см. рисунок 3, то соотношение Эйлера справедливо и для количества вершин, ребер и граней выпуклого многогранника.

Рисунок 3

Преобразование куба в планарный граф. Одна из граней переходит в неограниченную область планарного графа

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

,

которые показывают, что ,ипопарно пропорциональны. Отсюда следует, что для полного описания (представления) многогранника свершинами достаточно объема памяти. Более того, опираясь на то, что скелет многогранника является планарным графом, многогранник может быть представлен, используя любую структуру данных, подходящую для представления планарного графа (такие как списки смежности или реберный список с двойными связями [3]). Если выпуклый политоп являетсясимплициальным (в трехмерном пространстве это означает, что каждая грань представляет собой треугольник), все приведенные выше неравенства превращаются в равенства.

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

Соседние файлы в папке Выпуклые оболочки