- •Введение
- •1. Модели. Элементы моделей
- •2. Построение кривых
- •3. Построение поверхностей
- •4. Типы моделей
- •5. Полигональные сетки
- •6. Описание геометрических форм
- •6.1. Описание поверхностей. Параметрическое описание поверхностей
- •Эллипсоид
- •Xacoscos,
- •Общие случаи нормали к поверхности
- •Описание поверхностей неявными функциями
- •6.2. Поточечное описание поверхностей.
- •6.3. Синтез изображений методом обратной трассировки лучей
- •Система координат, применяемая в методе обратной трассировки лучей
- •6.4. Способы представления моделей геометрических объектов
- •6.5. Кривые и поверхности nurbs
- •7. Структура твердотельной модели
- •8. Синтез твердого тела по процедурному описанию
- •8.1 Векторная полигональная модель
- •8.2. Воксельная модель
- •8.3. Равномерная сетка
- •8.4. Неравномерная сетка. Изолинии
- •9. Преобразование моделей описания поверхности
- •10. Понятие кубических сплайнов
- •11. Интерполяция b-сплайнами
- •12. Выпуклые оболочки
- •Основные понятия и идеи
- •12.1. Метод обхода грэхема
- •12.2. Обход методом джарвиса
- •13. Геометрмческое моделирование криволинейных объек тов с использованием барицентрических координат
- •13.1. Линейная интерполяция и барицентрические координаты
- •13.1.1. Барицентрические координаты на прямой
- •13.1.2. Барицентрические координаты на плоскости
- •13.1.3. Барицентрические координаты в пространстве
- •13.2. Метод определения точек, инцидентных треугольной порции поверхности, по заданным локальным координатам
- •13.2.1. Алгоритм задания квадратичной параболы
- •13.2.2. Анализ алгоритма кастельжо для произвольной кривой
- •13.2.3. Обобщённый алгоритм для треугольной порции поверхности
- •13.3. Аппроксимация поверхностей обобщенными полиномами бернштейна
- •13.3.1. Свойства треугольной порции поверхности безье
- •13.3.2. Свойства обобщенных полиномов бернштейна
- •14. Особенности аппроксимации обводов параметрическими полиномами в форме бернштейна
- •14.1. Методы полиномиальной аппроксимации одномерных обводов
- •14.1.1. Общая постановка задачи аппроксимации дискретного набора данных
- •14.1.2. Аппроксимация обводов параметрическими полиномами
- •14.1.3. Аппроксимация обводов параметрическими полиномами бернштейна
- •14.2. Геометрические свойства производных полиномов бернштейна
- •14.2.1. Вычисление первой производной
- •14.2.2. Вычисление производных высшего порядка
- •14.3. Методы полиномиальной аппроксимации двумерных обводов
- •Метод тензорного произведения
- •Каркасный метод
- •14.3.3. Метод булевой суммы (поверхности Кунса)
- •15. Стандарты в графических системах сапр и современные растровые графические файлы
- •15.1. Графические системы класса 2d
- •15.2. Графические системы класса 3d
- •15.3. Стандарты обмена данными
- •16. Системы подготовки и выпуска конструкторско-технологической документации. Организация конструкторской подготовки производства
- •17. Графические диалоговые системы
- •17.1. Краткий обзор зарубежных cad-систем
- •Технологические модули в pt/Products. Интеграция процессов проектирования и изготовления
- •Работа со стандартными библиотеками посредством pt/LibraryAccess и pt/Library
- •17.2. Отечественные разработки
- •Компас 5
- •T-flex cad
- •Заключение
- •394026 Воронеж, Московский просп., 14
6.5. Кривые и поверхности nurbs
Начнем с рассмотрения NURBS-кривых, поскольку это дает базовое понимание В-сплайнов, а затем обобщим их на поверхности. В общем случае В-сплайн состоит из нескольких сплайновых сегментов, каждый из которых определен как набор управляющих точек. Поэтому коэффициенты многочлена будут зависеть только от управляющих точек на рассматриваемом сегменте кривой. Этот эффект называется локальным управлением, поскольку перемещение управляющей точки будет влиять не на все сегменты кривой. Рис. 6. показывает, как управляющие точки влияют на форму кривой.
Рис. 6. В-сплайн с управляющей точкой Р4 в нескольких положениях
Рассмотрим различные виды В-сплайнов.
В-сплайн интерполирует набор из р+1 управляющей точки , и состоит из р-(n-1) сегментов кривой. Кроме того, мы можем определить общий параметр t, нежели отдельный для каждого сегмента в интервале от 0 до 1. Таким образом, для каждого сегмента кривойt будет принадлежать интервалу. Более того, на каждый сегментбудет влиять ровно n управляющих точек отдо.
Для каждого i >= n существует узел между идля значенияti параметра t. Для В-сплайна существует p-n-2 узлов. Отсюда исходит понятие однородности: если узлы равномерно распределены на интервале от 0 до 1, т.е. , то говорят, что В-сплайн равномерный. В противном случае – неравномерный. Стоит также обратить внимание на факт, что эти определения касаются узлов, возрастающих по значению, т.е..
Теперь предположим, что координаты (x, y, z) точки кривой представлены в виде рациональной дроби. В этом случае говорят, что В-сплайн рациональный, иначе – нерациональный:
Подводя итог, можно указать на существование 4 типов В-сплайнов:
- равномерные нерациональные;
- неравномерные нерациональные;
- равномерные рациональные;
- неравномерные рациональные.
Последний тип и представляет собой NURBS как наиболее общий случай В-сплайнов.
Теперь рассмотрим математическое описание NURBS. NURBS кривая и поверхность соответственно выражаются следующими двумя параметрическими уравнениями:
где Рi - управляющая точка, Wi - ассоциированный с ней вес и - базовая функция, определенная рекурсивно следующим образом:
Из формул видно, что точка кривой (поверхности) является средневзвешенных управляющих точек, причем удельный вес каждой точки зависит от одного (двух – для поверхности) параметра.
Как видно, NURBS имеют явные преимущества по сравнению со всеми описанными выше сплайнами. Следует также обратить внимание, что сплайны Безье – это NURBS, у которого веса всех управляющих точек равны 1 и который состоит из 1-го сплайнового сегмента.
Таким образом, NURBS имеет все преимущества Безье-сплайнов, а также следующие:
- возможность локального управления кривизной сплайна;
- наличие весов для управляющих точек, делающих сплайны еще более гибкими.
Единственный недостаток – это несколько более сложное математическое описание NURBS по сравнению с Безье сплайнами, однако порядок этого усложнения не высок.
7. Структура твердотельной модели
Выбор структуры, или топологии, твердотельной модели определяется способом дальнейшего использования синтезируемой модели. Для внешнего использования (при экспорте в таких форматах обмена данными, как dxf, iges, step и т.д.) топология определяется форматом файла, но, как правило, это одна из реберных поверхностных модели. Для внутреннего использования (приложениями, использующими данную библиотеку) наиболее удобна топология "крылатого" представления (winged-edge representation).
Структурными элементами гранично-заданных моделей являются вершины v, ребра e и грани f. Поскольку для представления поверхности мы будем использовать NURBS поверхности, то, как показывает практика целесообразно использовать обрезанные патчи как показано на рис. 7.
Рис. 7. Усеченный патч
Усекаемая часть патча задается цепочкой плоских кривых (c0-c7), заданный в его области определения (по параметрам s, t). Эти цепочки образуют циклы, направление обхода (по или против часовой стрелки) которых определяет какая часть патча остается, а какая отсекается. В некоторых системах указанные плоские кривые хранятся в двух видах: как алгебраическая и как параметрическая сплайновая кривая. Алгебраическая кривая определяет точное ее уравнение (прямая, дуга), а параметрическая – определяет аппроксимацию этой кривой для единообразия при выполнении операций с моделью. В данной работе аналогом алгебраической кривой является произвольная символьная функция библиотеки. Поэтому двойственность представления будет иметь смысл только для внутреннего использования.
Во многих системах кривые являются линиями пересечения патчей, а вершины – точками пересечения кривых. Так, например, на рис. 8 изображена твердотельная модель цилиндра. Патчи боковой его грани являются полными (без усечения), а верхняя и нижняя грани усеченны цепочками c8-c7-c6-c5 и c1-c2-c3-c4 соответственно.
Рис. 8. Граничное представление твердотельной модели цилиндра
В табл. 2 и 3 для данной модели цилиндра приведены вершинное и "крылатое" представления.
Табл. 2.
Твердотельная модель цилиндра в вершинном представлении
vertex |
coordinates |
edge |
vertices |
face |
edges |
v1 |
x1, y1, z1 |
e1 |
v1, v2 |
f1 |
e4, e9, e8, e10 |
v2 |
x2, y2, z2 |
e2 |
v2, v3 |
f2 |
e3, e12, e7, e9 |
v3 |
x3, y3, z3 |
e3 |
v3, v4 |
f3 |
e2, e11, e6, e12 |
v4 |
x4, y4, z4 |
e4 |
v1, v4 |
f4 |
e1, e10, e5, e11 |
v5 |
x5, y5, z5 |
e5 |
v6, v5 |
f5 |
e1, e2, e3, e4 |
v6 |
x6, y6, z6 |
e6 |
v7, v6 |
f6 |
e8, e7, e6, e5 |
v7 |
x7, y7, z7 |
e7 |
v8, v7 |
|
|
v8 |
x8, y8, z8 |
e8 |
v5, v8 |
|
|
|
|
e9 |
v4, v8 |
|
|
|
|
e10 |
v1, v5 |
|
|
|
|
e11 |
v2, v6 |
|
|
|
|
e12 |
v3, v7 |
|
|
Табл. 3.
Твердотельная модель цилиндра в "крылатом" представлении
edge |
vstart |
vend |
ncw |
nccw |
vertex |
coordinates |
face |
first edge |
sign |
v1 |
v1 |
v2 |
e2 |
e10 |
v1 |
x1, y1, z1 |
f1 |
e8 |
- |
v2 |
v2 |
v3 |
e3 |
e11 |
v2 |
x2, y2, z2 |
f2 |
e3 |
- |
v3 |
v3 |
v4 |
e4 |
e12 |
v3 |
x3, y3, z3 |
f3 |
e2 |
- |
v4 |
v1 |
v4 |
e1 |
e9 |
v4 |
x4, y4, z4 |
f4 |
e1 |
- |
v5 |
v6 |
v5 |
e8 |
e11 |
v5 |
x5, y5, z5 |
f5 |
e1 |
+ |
v6 |
v7 |
v6 |
e5 |
e12 |
v6 |
x6, y6, z6 |
f6 |
e5 |
+ |
v7 |
v8 |
v7 |
e6 |
e9 |
v7 |
x7, y7, z7 |
|
|
|
v8 |
v5 |
v8 |
e7 |
e10 |
v8 |
x8, y8, z8 |
|
|
|
v9 |
v4 |
v8 |
e8 |
e3 |
|
|
|
|
|
v10 |
v1 |
v5 |
e5 |
e4 |
|
|
|
|
|
v11 |
v2 |
v6 |
e6 |
e1 |
|
|
|
|
|
v12 |
v3 |
v7 |
e7 |
e2 |
|
|
|
|
|