Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций по КГ.pdf
Скачиваний:
81
Добавлен:
11.05.2015
Размер:
2.2 Mб
Скачать

β-сплайн (Beta-spline) кривая, построенная на основе однородного кубического B-сплайна, имеющая дополнительные параметры для учета локального наклона и гладкости.

Пусть имеем две элементарные кривые, заданные параметрическими уравнениями r1 (t) и r2 (t) . Для получения составной регулярной кривой потре-

буем совпадения в общей точке единичных касательных векторов и векторов кривизны. Это будет возможно если:

 

 

 

 

 

 

¢

 

 

¢

 

¢¢

2

 

 

¢¢

+ b

2

 

¢

 

 

 

 

 

 

 

r2 (0) = r1 (1), r2 (0)

= b1r1 (1), r2 (0)

= b1

r1 (1)

2 r1 (1), (37)

где b1 , b2 – числовые параметры больше нуля.

При этом уравнение элементарной кубическойβ-сплайновой кривой, по-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

рожденной наборами точек Vi-1 ,Vi ,K,Vi +1 ,Vi +2

выглядит в матричном виде так:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

) )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

)

 

 

r

(t) =VMT ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

V = (Vi-1ViVi+1Vi+2 ), M =

 

 

 

 

 

 

 

 

 

æ

 

 

 

 

 

2a

 

 

- 6a

 

 

6a

- 2a

ö

 

1

ç

 

 

 

+ b1 ) + b2

6(a - b1 ) - 3(2a + m)

 

÷

 

ç4(b12

2(a -n ) ÷

=

 

 

 

ç

 

 

 

2

 

 

 

 

 

 

- 6b

 

 

3m

- 2(n +1)

÷, (38)

 

d

 

 

 

 

 

 

 

 

 

 

 

 

 

ç

 

 

 

 

 

 

 

 

 

 

 

÷

 

 

 

 

ç

 

 

 

0

 

 

 

 

0

 

0

2

÷

 

 

 

 

è

 

 

 

 

 

 

 

 

ø

a = b13 , m = 2b12 + b2 , n = b12 + b1 + b2 ,

d = 2b13 + 4b12 + 4b1 + b2 + 2.

Параметр b1 носит название параметр скоса, b2 – параметр натяжения.

Эти параметры влияют на форму всей кривой.

Если b1 =1, b2 = 0 , то мы получим кубическую В-сплайновую кривую.

6.3. Геометрическое моделирование

Во многих приложениях машинной графики возникает потребность в представлении трехмерных тел(вычислительный эксперимент, автоматизация проектирования, роботизация, вычислительная томография, тренажеры, видеографика и т.д.).

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

104

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

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

Используются три основных типа 3D моделей:

1)каркасное представление, когда тело описывается набором ребер;

2)поверхностное, когда тело описывается набором ограничивающих его поверхностей;

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

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

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

6.3.1. Элементы моделей

При формировании 3D модели используются:

двумерные элементы (точки, прямые, отрезки прямых, окружности и их дуги, различные плоские кривые и контуры),

поверхности (плоскости, поверхности, представленные семейством образующих, поверхности вращения, криволинейные поверхности),

105

– объемные элементы (параллелепипеды, призмы, пирамиды, конусы, произвольные многогранники и т.п.).

Из этих элементов с помощью различных операций формируется внутреннее представление модели.

6.3.2. Методы построения моделей

Используются два основных способа формирования геометрических элементов моделей – это построение по заданным отношениям(ограничениям) и построение с использованием преобразований.

Построение с использованием отношений

Построение с использованием отношений заключается в том, что задаются элемент подлежащий построению и список отношений и элементы к которым относятся отношения.

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

Используется два способа реализации построения по отношениям– общий и частный.

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

1)на основе заданных типов отношений, элементов и параметров строится система алгебраических уравнений;

2)решается построенная система уравнений.

Очевидное достоинство такого способа – простота расширения системы – для введения нового отношения достаточно просто написать соответствующие уравнения.

Основные проблемы такого способа заключаются в следующем:

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

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

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

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

106

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

Преимущества такого подхода ясны– проще писать систему. Не менее очевидны и недостатки, когда пользователю требуется использовать сильно разветвленные меню и/или запоминать мало вразумительные сокращения или пиктограммы, так как обычно число требуемых вариантов построения исчисляется сотнями. Расширение системы, реализуемое добавлением новой подпрограммы, требует ее перепроектирования, по крайней мере, в части обеспечения доступа пользователя к новым возможностям. В некотором смысле предельный пример этого подхода – система AutoCAD фирмы Autodesk. Авторы даже гордятся сложностью системы: "AutoCAD предоставляет эту крайне сложную технологию".

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

Построение с использованием преобразований

Построение нового объекта с использованием преобразований заключается в следующем:

задается преобразуемый объект,

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

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

Построение кривых

Важное значение при формировании как2D, так и 3D моделей имеет построение элементарных кривых. Кривые строятся, в основном, следующими способами:

a) той или иной интерполяцией по точкам, b) вычислением конических сечений,

a) расчетом пересечения поверхностей,

107

b)выполнением преобразования некоторой кривой,

c)формированием замкнутых или разомкнутых контуров из отдельных сегментов, например, отрезков прямых, дуг конических сечений или произвольных кривых.

В качестве последних обычно используются параметрические кубические кривые, так как это наименьшая степень, при которой обеспечиваются:

непрерывность значения первой (второй) производной в точках сшивки сегментов кривых,

возможность задания неплоских кривых.

Параметрическое представление кривых выбирается по целому ряду причин, в том числе потому, что зачастую объекты могут иметь вертикальные касательные. При этом аппроксимация кривой y = f (x) аналитическими функциями была бы невозможной. Кроме того кривые, которые надо представлять, могут быть неплоскими и незамкнутыми. Наконец, параметрическое представление обеспечивает независимость представления от выбора системы координат и соответствует процессу их отображения на устройствах: позиция естественным образом определяется как две функции времени x(t) и y(t) .

В общем виде параметрические кубические кривые можно представить в форме:

x(t) = A t 3

+ A t 2

+ A t + A ,

 

11

12

13

14

 

y(t) = A t 3

+ A t 2

+ A

t + A ,

(39)

21

22

23

24

 

z(t) = A t 3

+ A t 2

+ A t + A ,

 

31

32

33

34

 

где параметр t можно считать изменяющимся в диапазоне от0 до 1, так как интересуют конечные отрезки.

Существует много методов описания параметрических кубических кривых. К наиболее применяемым относятся:

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

2)метод В-сплайнов, при котором конечные точки не лежат на кривой и на концах сегментов обеспечивается непрерывность первой и второй производных.

Построение поверхностей

Основные способы построения поверхностей:

108

интерполяцией по точкам,

перемещением образующей кривой по заданной траектории(кинематический метод),

деформацией исходной поверхности,

построением поверхности эквидистантной к исходной,

кинематический принцип,

операции добавления/удаления в структуре,

теоретико-множественные (булевские) операции.

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

В общем случае представление бикубического параметрического куска имеет вид (приведена формула для x-координаты, для других координат форму-

ла аналогична):

ìx(t) = A11s3t3 + A12 s3t 2 + A13 s3t + A14 s3 +

ï

 

 

 

 

ï+ A21s2t 3 + A22 s2t 2 + A23s2t + A24 s2 +

x(s,t)í

+ A st3 + A st 2

 

(40)

ï

+ A st + A s +

31

32

33

34

ï+ A t 3 +

A t 2 +

A t +

A

î

41

42

43

44

Аналогично случаю с параметрическими кубическими кривыми, наиболее применимыми являются:

·форма Безье,

·форма В-сплайнов,

·форма Эрмита.

Типы моделей

Как уже отмечалось, можно выделить два основных типа представлений

3D моделей:

1)граничное, когда в модели хранятся границы объекта, например, вершины, ребра, грани;

2)в виде дерева построения, когда хранятся базовые объекты(призма, пирамида, цилиндр, конус и т.п.), из которых формировалось тело и использованные при этом операции; в узле дерева сохраняется операция формирования,

аветви представляют объекты.

109

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

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

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

Рисунок 45 – Преобразования моделей представления

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

110

Используются две основных разновидности способов представления поверхностей тела:

1)представление в виде набора вершин, ребер и плоских многоугольников (полигональных сеток),

2)представление с использованием параметрических бикубических площадок (кусков).

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

Полигональные сетки

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

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

Рисунок 46 – Пример полигональной сетки. Pi - многоугольники, V j -

вершины, Ek - ребра.

111

Рисунок 47 – Представление полигональной сетки с явным заданием многоугольников.

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

Рисунок 48 – Представление полигональной сетки с указателями на списки вершин.

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

112