Главная > Математика > Геометрическое моделирование
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

Глава 6. МОДЕЛИРОВАНИЕ ТЕЛ

6.1. Математическая модель тел

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

Многие предметы можно смоделировать, используя только плоские поверхности. Такое представление тел называется плоскогранным (Faceted representation или Faceted). Для описания криволинейных поверхностей плоскогранное представление может аппроксимировать их некоторым количеством пластин треугольной или четырехугольной формы. Использование плоских поверхностей значительно упрощает выполнение операций над телами. Плоскогранное представление широко применяется в строительстве и компьютерной графике для получения тоновых изображений.

Некоторые поверхности можно описать уравнениями в координатной форме (представить поверхности неявно). К ним относятся поверхности второго порядка, поверхность тора и другие. Используя для моделирования тел такие поверхности, мы придем к конструктивной твердотельной геометрии (Constructive Solid Geometry или CSG). Конструктивная твердотельная геометрия оперирует примитивами, к которым, как правило, относят прямоугольную призму, треугольную призму, сферу, цилиндр, конус и тор. Над примитивами и полученными из них телами можно выполнять различные операции (в первую очередь булевы операции). Используемые конструктивной твердотельной геометрией поверхности (сферическая, цилиндрическая, коническая, поверхность тора и плоскость) делят пространство на две части и для них можно указать, с какой стороны поверхности находится внутренний объем тела. Неявное представление поверхностей дает возможность получить линии их пересечения в аналитической форме. Конструктивная твердотельная геометрия позволяет моделировать большинство промышленных деталей.

Наиболее общий подход к описанию тел состоит в представлении тела совокупностью ограничивающих его объем оболочек, грани и ребра которых заданы параметрически. Каждая оболочка строится из набора стыкующихся друг с другом поверхностей произвольной формы, содержащих полную информацию о своих границах и связях с соседями. Такое описание тел называется представлением с помощью границ (Bounded representation или В-rep).

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

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

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

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

Рис. 6.1.1. Математическая модель тепа

Но для редактирования тела необходима информация о последовательности и способах его построения, поэтому в модель тела включают еще и дерево построения (или протокол построения) тела (рис. 6.1.1).

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

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

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

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

(6-1-1)

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

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

Грань может содержать несколько циклов, причем один из циклов является внешним, а остальные циклы — внутренними. Внутренние циклы должны целиком лежать внутри внешнего цикла.

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

Рис. 6.1.2. Грань и ее структура данных: поверхность, ее ориентация и список циклов

По каждому циклу можно построить контур на поверхности, который описывает границу грани. На рис. 6.1.2 приведен пример плоской грани с указанием направлений ее циклов.

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

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

Рис. 6.1.3. Ребро АВ и его структура данных

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

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

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

<< Предыдущий параграф Следующий параграф >>
Оглавление