Информатика в техническом университете / Информатика в техническом университете. Компьютерная графика
.pdf
3.4. Твердотельное моделирование
чения. Пересечение внутренних областей, а также внутренних и граничных областей всегда входит в исходный результат. На рисунке этот фрагмент выделен темно-серым цветом. Правила включения пересечения границы с границей формулируются несколько сложнее. Если оба операнда лежат по одну сторону от общей границы, то такое пересечение входит в результат. Для нашего примера — это вся граница темного прямоугольника. Если операнды размещены по разные стороны от границы, то пересечение не входит в результат регуляризованной операции. На рис. 3.40, б это кусок линии, обозначенный С.
Таким образом, пересечение границ входит в результат регулярной булевской операции тогда и только тогда, когда внутренние области обоих операндов лежат по одну сторону от общего фрагмента границы. Это интуитивное определение дает четкий критерий в большинстве простых ситуаций, когда операнды принадлежат одной плоскости. Для операндов общего положения требуется выработать более четкий операциональный критерий. Для этого следует ввести понятие нормали к поверхности. Если нормали пересекающихся объектов направлены в одну сторону, то они лежат по одну сторону от общей границы. На рис. 3.40, в нормали черного квадрата и объекта А совпадают, поэтому их общая граница входит в результат операции.
Пусть операнды расположены по разные стороны от общей границы, а их нормали — встречно. В этом случае внутренние области объектов, смежные с общей границей, не входят в пересечение. В результате общая граница не обладает смежностью с внутренними точками результирующей области, поэтому и сама не входит в регулярное пересечение.
Известно, что нормали к поверхностям имеют большое значение для затенения граней поверхности. Определение точной границы булевского пересечения геометрических тел — еще одна важная функция этих объектов.
Результаты регулярных операций можно описать в терминах обычных булевских операций над границами и внутренними областями исходных форм.
|
|
|
Таблица3.2 |
Нерегулярные |
|
Регулярные операции |
|
операции |
A U* В |
АП*В |
А-* В |
|
|||
А,- П Bi |
+ |
+ |
- |
А,-В |
+ |
- |
+ |
В,-А |
+ |
- |
- |
Ah П В,- |
- |
+ |
- |
Bh П А,- |
- |
+ |
+ |
Аь-В |
+ |
- |
+ |
Вь-А |
+ |
- |
- |
#(А„ П Вь) |
+ |
+ |
- |
~(Ah П Вь) |
- |
- |
+ |
235
3. Математические модели геометрических объектов
А В
Ц |
I "75! |
Т |
Щ |
ШшШш |
||
ШВШк. |
|
I |
|
|
I |
|
е |
|
ж |
|
з |
и |
к |
Рис. 3.41. Обычные булевские операции над элементами объектов:
а — операнды А и В; б — А,• П В,; в — А,• - В; г — В,• - А; <) — Аь П В,; е — В4 П А,-; ж — Аь-В;
з— Вь-А;и — #(АьП Вь); к — ~(Ah П В,,)
Втабл. 3.2 приведены правила сведения регулярных операций к обычным. На рис. 3.41 на примере простейших форм показаны схемы этих операций. Буквами А и В обозначены операнды, нижние индексы i и Ъ означают соответственно внутренние и граничные области, #(Ah П Bh) — часть общей границы объектов А
иВ, относительно которой А, и В, лежат по одну сторону, наконец, ~{АЬ П Вь) означает часть общей границы, где А и В лежат по разные стороны. Каждая регулярная булевская операция сводится к набору обычных операций, которые в табл. 3.2 отмечены знаком «+».
Для всех регулярных операций каждый фрагмент результирующей границы принадлежит либо одному, или обоим операндам. Для операций А и * В и Л П*В нормали к граням результирующего объекта наследуют свое положение от одного или обоих операндов. Для операции А -* В действует иное правило. Нормали граней результирующего тела, которое получено вычитанием В из А, имеют противоположное
направление нормалям соответствующих граней В. |
Это следует из тождества |
А -* В = А о* В, где В — дополнение В. Тело В |
может быть получено допол- |
нением внутренней части тела В с последующим обращением нормалей границы.
Во многих графических редакторах и системах автоматизированного проектирования пользовательский интерфейс основывается на использовании регулярных булевских операций. Эта техника предоставляет оператору удобный и надежный способ формирования сложных объектов из нескольких простых.
3.4.3. Параметрическое моделирование геометрии
Во многих отраслях техники сложный объект или система рассматривается как сочетание некоторого набора стандартных элементов. Очевидные преимущества
236
3.4. Твердотельное моделирование
этого подхода к проектированию сделали привлекательной идею о такой организации процесса геометрического моделирования, когда облик изделия создается из стандартных форм— элементов некоторого геометрического конструктора. Эти элементы принято называть геометрическими примитивами. Примитивы, у которых зафиксированы все геометрические и конструктивные параметры, имеют ограниченную область применения, поэтому в геометрическом проектировании используются параметризованные примитивы. Например, примитивом будет многоугольник, для которого пользователь может задавать не только геометрические размеры, но и число сторон. Примитивом может быть элемент некоторого семейства объектов, члены которого различаются несколькими конструктивными, технологическими и геометрическими параметрами. Такой подход, названный групповая технология, используется в системах автоматизированного проектирования.
Параметризация примитивов часто применяется для определения таких сравнительно сложных объектов, как болты, гайки, зубчатые колеса и т. п. Конечно, эти формы допускают определение в терминах регулярных булевских операций, однако данный подход требует кропотливой работы над элементарными геометрическими телами, которые являются операндами сложных тел.
Примером сложного параметризованного примитива является зубчатое колесо, которое описывается набором из четырех геометрических и конструктивных параметров (рис. 3.42).
Привлекательная идея параметризации примитивов имеет несколько существенных ограничений. В этой парадигме не существует никаких средств для синтеза сложных объектов из набора простых. Для создания нового примитива требуется разрабатывать его код заново. Каждый примитив должен иметь программное окружение, состоящее из набора сервисных процедур и утилит. Например, в нее могут входить программы для расчета массы, объема, момента инерции и других конструктивных характеристик объекта. Как правило, утилиты такого типа являются уникальными: они создаются под спецификацию конкретного примитива и в общем случае не способны рассчитывать другие элементы базиса.
а |
б |
Рис. 3. 42. Параметризованное зубчатое колесо:
а— диаметр — 40, толщина — 10, отверстие — 10, число зубьев — 10;
б— диаметр — 60, толщина — 20, отверстие — 15, число зубьев — 16
237
3. Математические модели геометрических объектов
3.4.4. Заметание
Заметанием (sweeping) называется способ формообразования при помощи движения объекта по некоторой траектории или согласно некоторому заданному закону. Это очень продуктивный метод, позволяющий получать трехмерные тела, которые с трудом воспроизводятся с помощью иных способов геометрического синтеза. Простейший пример этого метода генерации форм дает движение замкнутой двухмерной кривой вдоль прямолинейной траектории. Во многих пакетах машинной графики данный метод формообразования называют экструдированием (extrude). Экструдирование позволяет получить множество трехмерных форм, описывающих машиностроительные детали, элементы архитектурных конструкций, предметы интерьера и т. п.
Возможности формообразования значительно расширятся, если использовать траектории в виде кривых произвольной формы. В этом случае движение сечения ограничивается дополнительным условием, согласно которому в каждой точке пути нормаль сечения должна совпадать с касательной к траектории.
Вращение сечения вокруг некоторой фиксированной оси — еще один результативный способ генерации трехмерных форм, потенциально способный породить множество всех объектов, которые в инженерной практике именуются телами вращения. В англоязычной литературе этот способ называется rotational sweeping, что обычно переводят как заметание вращением.
Таким образом, если выбрать образующую, направляющую и закон движения, то множество точек пространства, которое заметет первый объект при смещении по второму, полностью определяет новое, в общем случае трехмерное тело. На рис. 3.43
Рис. 3.43. Примеры кривых и трехмерных форм, порожденных их движением в пространстве
238
3.4. Твердотельное моделирование
показаны примеры кривых и трехмерных тел, которые они порождают своим движением вдоль различных траекторий.
Чтобы получить трехмерную форму методом заметания, необязательно смещать двухмерное сечение, в некоторых случаях намного удобнее в качестве образующей использовать некоторый трехмерный объект. Этот метод формообразования используется при программировании металлообрабатывающих систем с числовым программным управлением и в системах управления роботами и робототехническими комплексами.
Следует отметить, что рассмотренный метод формообразования может иметь различные наименования в системах геометрического моделирования и литературе по КГ. Например, в популярной системе трехмерной графики 3Ds Max заметание называется Loft, в описаниях пакета на русском языке его именуют лофтингом. Заметание вращением (rotational sweeping) называется Lathe. Существуют и другие терминологические варианты, получившие распространение в кругах пользователей определенных пакетов трехмерной графики или систем автоматизированного проектирования.
Заметание — естественный способ генерации новых трехмерных форм. Он допускает простое управление и дает предсказуемые результаты. Однако его изобразительные возможности не безграничны, существуют трехмерные объекты, которые нельзя создать движением образующих. Заметание требует значительных вычислительных ресурсов для расчета трехмерных объектов, полученных движением по самопересекающимся траекториям. Кроме того, класс объектов, полученных этим способом, не является замкнутым относительно регуляризованных булевских операций.
На рис. 3.44 представлены две призмы, полученные смещением треугольников вдоль прямой траектории. Булевское объединение этих форм не может быть создано заметанием каких-либо двухмерных или трехмерных образующих.
Формообразование можно существенно расширить, если допустить использование нескольких образующих, связанных с одной траекторией. На рис. 3.45
Рис. 3.44. Объединение двух трехмерных объектов, созданных экструдированием треугольников, не может быть получено заметанием
239
3. Математические модели геометрических объектов
%* |
Рис. 3.45. Заметание с тремя образующими |
показан пример трехмерного тела, полученного движением трех образующих вдоль одной кривой.
В некоторых пакетах машинной графики этот способ формообразования считается самостоятельным и называется скиннингом (skinning).
3.4.5. Граничное представление
Граничным представлением (Boundary Representation, B-rep) называется описание пространственных тел в терминах границ и их элементов. Это один из самых простых, выразительных и хорошо изученных способов определения трехмерной геометрии.
В описании границы тела участвуют объекты с интуитивно понятным геометрическим содержанием: вершины, ребра, грани и оболочки. Рассмотрим подробнее топологические свойства граничных составляющих.
Оболочки тела должны обладать свойством однородности — это значит, что все они должны быть описаны по единым правилам. Так, согласно этому принципу, не разрешается смешивать в одном описании явные и неявные модели граничных оболочек. Оболочки могут состоять из нескольких граней. Каждая грань представляет собой фрагмент некоторой поверхности с данными о связях с соседними гранями и ориентации относительно внутреннего объема тела.
Ограничивающие оболочки делят пространство на две части: внутреннюю и внешнюю. Невозможно перейти из одной части пространства в другую без пересечения границы. Существуют объекты, для описания которых требуется несколько граничных оболочек. Примерами таких тел являются отливки с кавернами, машиностроительные детали, обладающие отверстиями, резервуары и пр. Геометрия всех названных примеров описывается, по крайней мере двумя оболочками: внешней и внутренней. Внутренние оболочки определяют пустоты и
240
3.4. Твердотельное моделирование
располагаются внутри внешней. Оболочки любого типа не должны иметь пересечений друг с другом и самопересечений.
Во многих операциях автоматизированного конструирования и технологической подготовки производства важно различать внутренние и внешние точки деталей и узлов. Поэтому граничные оболочки считаются ориентированными, одна сторона их обращена внутрь тела, другая — наружу. Чтобы сделать ориентацию определенной каждой точке границы приписывается нормаль, которая направлена от оболочки в наружном направлении. Это соглашение представляется совершенно ясным для внешних оболочек, некоторые противоречия с геометрической интуицией могут возникать с нормалями внутренних фрагментов границы, которые имеют нормали, направленные внутрь ограничиваемой части пространства. Можно считать, что внутренние оболочки тела ведут себя как вывернутые наизнанку внешние.
Таким образом, для точного математического описания трехмерного тела требуется задать внешнюю оболочку и в зависимости от связности объекта одну или несколько внутренних оболочек.
Большая часть современных систем геометрического моделирования поддерживает представление, у которого фрагментами границ являются так называемые двухмерные многообразия — геометрические объекты, каждая точка которых имеет окрестность, топологически подобную плоскому двухмерному диску. Точное название отношения топологического подобия — гомоморфизм. Это абстрактная математическая категория, которая нуждается в четком и развернутом определении. С небольшой погрешностью подобными можно считать две геометрические фигуры, между точками которых можно установить непрерывное взаимно-однозначное соответствие.
На рис. 3.46 изображены образцы тел. Две призмы, показанные на рис 3.46, б, соединены по одному ребру. Если взять любую точку на этом ребре и проанализировать ее окрестность, то можно заметить ее коренное топологическое отличие от двухмерного диска. Примеры объектов, не относящихся к классу многообразий: соединение трехмерного тела с отдельным ребром; два многообразия, имеющие только одну общую вершину; трехмерное тело с внутренними переборками.
а |
б |
Рис. 3.46. Форма многообразного тела (а) и не многообразного тела (б)
241
3. Математические модели геометрических объектов
Полиэдры и формула Эйлера
В КГ полиэдром называется твердое тело, границу которого образует множество многоугольников, расположенных таким образом, что любая пара из них либо не пересекается, либо пересечение этих фигур является ребром каждого многоугольника. Простым полиэдром называется тело, топологически эквивалентное обычной сфере. Если не использовать точные определения из гомотопической топологии, то можно считать, что такая эквивалентность означает потенциальную возможность одну фигуру перевести в другую посредством непрерывной деформации. Очевидно, что несмотря на некоторое родовое и видовое сходство, сфера и тор не являются топологически подобными фигурами, поскольку внутреннее отверстие тора принципиально отличает его от сферы.
Граничное представление любых простых полиэдров должно удовлетворять формуле Эйлера, которая связывает число вершин, ребер и граней:
V-E |
(3.38) |
где V — число вершин; Е — число ребер; F — число граней.
На рис. 3.47 показаны примеры простых полиэдров и приведены значения множества вершин, ребер и граней. Очевидно, что для всех этих примеров верна формула Эйлера. Следует отметить, что формула Эйлера справедлива и для объектов, границу которых образуют неплоские грани и криволинейные ребра. Для простых полиэдров формула Эйлера является необходимым, но не достаточным условием. Если для некоторого трехмерного тела выполняется это соотношение, то отсюда не следует, что оно представляет собой простой полиэдр. Можно привести примеры объектов, которые не являются даже многообразиями, но удовлетворяют соотношению Эйлера.
Двухмерные многообразия, имеющие грани с отверстиями, описываются обобщенной формулой Эйлера:
Рис. 3.47. Примеры простых полиэдров:
8, £=12, F=6;6— V=5, £=8, F = 5;e — V=6, E= 12, F-
3.4. Твердотельное моделирование
iii'HS'-.tf&UlW |
|
|
|
У |
/ |
у |
У |
у |
уУ |
|
у |
у |
|
|
у уУ |
|
у |
У |
У |
|
/ |
|
Рис. 3.48. Пример многообразия с отверстиями, удовлетворяющего обобщенной формуле Эйлера:
V=24;E=36;F = 15;Я=3; С= 1; G= 1
(3.39)
V-E + F-H = 2(C-G),
где Я — общее число отверстий на гранях; G — число отверстий, проходящих через объект (род многообразия); С — число связных компонентов, образующих многообразие.
На рис. 3.48 приведен пример фигуры с отверстиями, которая полностью удовлетворяет обобщенной формуле Эйлера.
Очевидно, что любые операции над телами, которые не меняют числа вершин, ребер и граней, сохраняют соотношение Эйлера. К таким операциям относятся все аффинные преобразования геометрии трехмерных тел. В теоретических исследованиях по КГ обсуждаются так называемые эйлеровы операции, которые на основе нескольких трехмерных операндов синтезируют новые геометрические формы. Формула Эйлера является инвариантом в таких преобразованиях.
Структура данных граничного представления
Граничные оболочки трехмерных тел представляют собой множества граней. Грани — фрагменты поверхностей, математическое описание которых входит в общую структуру данных. Важно различать направление сторон граней. Одна сторона грани направлена наружу граничной оболочки, другая — внутрь. Описание грани в структуре данных должно содержать признак, по значению которого можно определить направление. Будем считать, что признак ориентации принимает положительное значение, если нормаль грани направлена наружу, отрицательное значение — в противном случае.
Пересечение граней является ребром. Ребро как объект структуры данных строится на основе линии пересечения поверхностей, которые являются носителями граней. Ребро может иметь ориентацию, совпадающую с направлением линии или противоположную ей. Для дифференциации таких случаев в структуру данных вводится специальный флаг, который принимает поло-
243
5. Математические модели геометрических объектов
жительное значение при совпадении направлений и отрицательное — в случае их различия.
Граничные ребра каждой грани образуют новый топологический объект, называемый циклом. В структуре данных В-rep цикл — замкнутое образование, имеющее ориентацию. Если направление ребра совпадает с циклом, то ему приписывается положительный флаг, в противном случае — отрицательный. Таким образом, циклом называется отсортированное по порядку следования множество ребер с флагами.
Если грань имеет отверстия, то ее граница будет описываться несколькими циклами: одним внешним и несколькими (в общем случае) внутренними. Понятно, что внутренние циклы должны целиком лежать внутри внешнего. Будем считать, что внешний цикл ориентирован против часовой стрелки, если смотреть на грань с внешней стороны, и, наоборот, внутренние циклы ориентированы по часовой стрелки при сохранении той же позиции наблюдателя. Согласно этой договоренности, грань
всегда остается с левой стороны, если двигаться по циклам с сохранением их ориентации.
Ребро, которое является границей двух граней, входит в два цикла: в одном цикле направление ребра совпадает с направлением цикла, а в другом — противоположно направлению цикла.
Каждое ребро имеет две граничные вершины. С точки зрения структуры данных, объект «вершина» должен хранить информацию о координатах точки пространства и сведения о всех инцидентных ребрах.
Простейшей формой хранения данных В-гер является табличная структура данных. Рассмотрим возможный вариант организации такой структуры на примере тела, показанного на рис. 3.49.
В табл. 3.3 представлены данные об элементах граничной оболочки полиэдра, показанного на рис. 3.49. В каждой строке подтаблицы записаны ребра, которые образуют граничный цикл соответствующей грани. Похожим образом организована и подтаблица вершин. В ней представлены граничные вершины ребер и числовые значения координат всех вершин. Для точного определения этих значений требуется выбрать некоторую систему координат, связанную с данным телом. Если из этой структуры исключить подтаблицу граней, то получится таблица, которая полностью задает каркасную модель трехмерного тела.
Несмотря на простоту, структуры данных подобного вида практически не применяются в современных системах автоматизированного проектирования и геометрического моделирования. Основными причинами этого являются:
