Информатика в техническом университете / Информатика в техническом университете. Компьютерная графика
.pdf
3.2. Параметрические кубические кривые
|
|
|
|
|
Таблица3.1 |
|
|
|
Тип кривой |
|
|
Свойства кривой |
Эрмита |
Безье |
Однород- |
Неодно- |
Р-сплайны |
|
|
|
|
|
|
|
|
|
ные |
родные |
|
|
|
|
В-сплайны В-сплайны |
|
|
Выпуклая оболочка, за- |
Непри- |
Да |
Да |
Да |
Да |
данная контрольными |
менимо |
|
|
|
|
точками |
|
|
|
|
|
Интерполяция некото- |
Да |
Да |
Нет |
Нет |
Нет |
рых контрольных точек |
|
|
|
|
|
Интерполяция всех кон- |
Да |
Нет |
Нет |
Нет |
Нет |
трольных точек |
|
|
|
|
|
Простота подразделения |
Прием- |
Хоро- |
Средняя |
Высокая |
Средняя |
Типичная гладкость в |
лемая |
шая |
|
|
|
C°,G° |
C°,G° |
C\G2 |
C\G2 |
C°,G2 |
|
узлах класса |
|
|
|
|
|
Достижимая гладкость в |
C\GX |
C\G' |
C\G2 |
C2,G2 |
C\G2 |
узлах класса |
|
|
|
|
|
Число управляющих па- |
4 |
4 |
4 |
5 |
6 |
раметров |
|
|
|
|
|
В табл. 3.1 приведена сводка важнейших технических параметров типов кривых. Для сравнения даны свойства сравнительно редкого типа кривых — Р-сплайны. В таблице не упомянута такая важная характеристика, как простота обращения. Подобное сравнение было бы необъективным, поскольку это свойство зависит от особенностей реализации в пакете или редакторе.
Достижимая гладкость в точках сочленения описывается классом, который может иметь кривая после выполнения некоторых дополнительных условий, например коллинеарность контрольных точек или их совпадение. Принадлежность классу С — более жесткое условие, чем принадлежность классу G". Выполнимость первого условия всегда влечет за собой истинность второго.
Во многих геометрических задачах автоматизированного проектирования требуется выполнимость условия G2, что ограничивает выбор формы представления кривых тремя типами сплайнов. Самые жесткие ограничения на свободу формообразования накладывают однородные В-сплайны. Напротив, неоднородные сплайны предлагают пользователю наибольший контроль над формой кривой.
В настоящее время стала общепринятой обработка кривых, когда пользователь настраивает ее форму, меняя положение узлов и касательных. Подобный набор интерактивных приемов поддерживается многими графическими редакторами и принят сообществом пользователей в качестве стандарта де-факто. К сожалению, контрольные точки В-сплайнов в общем случае не лежат на самой кривой. Некоторые графические программы скрывают от пользователя контрольные точки, предоставляя в его распоряжение узлы сплайна. Если пользователь смещает помеченный узел на некоторое расстояние с координатами Ах, Ау, то программа
215
3. Математические модели геометрических объектов
выполняет пересчет весов контрольных точек и реализует подлинное смещение узла на величину Ах'ф&х, Ау'&Ау, затем восстанавливает положение курсора. Этот процесс повторяют циклически до получения искомой формы сплайна.
3.3. Параметрические бикубические поверхности
Параметрические бикубические поверхности во многих отношениях представляют собой обобщение параметрических кубических кривых. Напомним, что в самом общем виде параметрические кубические кривые описывались следующим выражением:
Q(t)=TxMxG,
где G — геометрический вектор, представляющий собой постоянную величину. Чтобы сохранить общность изложения, изменим принятый способ обозна-
чения. Во-первых, заменим параметр / на s и перепишем основное уравнение
Q(s)=SxMxG.
Пусть значения геометрического вектора меняются по некоторой функции, зависящей от аргумента t. Учитывая это обобщение, запишем основное уравнение в следующем виде:
Q(s, t) = SxMxG(t)=SxMx |
G2(t) |
(3.26) |
|
G3(t) |
|||
|
При фиксированных значениях параметра t = t\ выражение Q(s, t\) представляет собой кривую, поскольку в этом случае геометрический вектор G(t\) является константой. Пусть параметр t принимает значения t\, /2, h, • ••> которые незначительно отличаются по величине и лежат в интервале [0, 1]. В результате будет порождено семейство близких по форме кривых Q(s, t). Множество этих кривых задает поверхность в трехмерном пространстве. Если координаты геометрического вектора G,(?) описываются кубическими полиномами, то говорят, что созданная поверхность относится к классу параметрических бикубических поверхностей. В дальнейшем будем исходить из этого предположения и рассматривать только поверхности подобного вида.
Представим G,(?) в следующем виде:
где
216
3.3. Параметрические бикубические поверхности
Здесь использовано полужирное начертание для отличия от геометрического вектора кривых, обозначаемого G. В этом выражении g,i представляет собой первый элемент геометрического вектора кривой G,(?); g/2 — второй и т. д.
Перепишем это уравнение, используя тождество (АхВхС)Т =(СТ хВт хЛт ):
хГ = [gn, gi2, |
g;3, |
g i 4 ] x M T x f . |
Л\. |
|
Распространим полученное выражение на все четыре координаты геометри- |
||||
ческого вектора и подставим результат |
в уравнение (3.26): |
\ |
||
§11 |
§12 |
§13 |
§14 |
|
Q{s,t) = SxMx §21 §22 |
§23 |
§24 хМТхТ\ |
(3.27) |
|
§31 |
§32 |
§33 |
§34 |
|
L§41 §42 |
§43 |
§44. |
|
|
Эту громоздкую зависимость можно представить в более компактной форме:
Q(s, t)=SxMxGxMTxTT; |
0<s ; |
*<1 . |
(3.28) |
Перепишем уравнение отдельно для каждой координаты:
. |
x(s, t) = SxMxGx хМтхГт; |
|
|
y(s,t) = SxMxG.,xMJxTT; |
(3.29) |
|
z(s,t) = SxMxGz xMTxTT. |
|
Совокупность уравнений (3.29) представляет собой общую модель параметрических бикубических поверхностей. Далее рассмотрены самые интересные частные случаи частные случаи поверхностей данного типа.
3.3.1. Поверхности Эрмита
Поверхности Эрмита полностью задаются геометрической матрицей GH размера 4 x 4 . Способ генерации этой матрицы полностью совпадает с подходом, использованным при выводе уравнения (3.28). Немного уточним этот вывод, применив принятую схему к x(s, t). Воспользуемся уравнением (3.4), которое задает определение кривых Эрмита. Заменив в нем параметр t на s, получим
x(s)=SxMHxGHx.
217
3. Математические модели геометрических объектов |
|
|||
|
По аналогии с рассуждением, приве- |
|||
|
денным в подразд. 3.2.1, запишем это вы- |
|||
|
ражение с переменным геометрическим |
|||
|
вектором: |
|
|
|
|
x(s, |
t)=SxMHxGHx(t) = |
|
|
|
= |
SxMHx РАО |
(3.30) |
|
Рис. 3.27. Способ представления бику- |
Здесь функции |
PXx(t), |
P4x(t) задают коор- |
|
бическойповерхности |
динаты х конечной |
и начальной |
точек |
|
|
кривой по параметру s. |
|
||
Похожим образом описываются функции Ru (t), |
R4x (t), |
они определяют ка- |
||
сательные векторы в начальной и конечной точках кривой. Каждое допустимое значение параметра t определяет положение двух концевых точек и касательных векторов в этих точках.
,о На рис. 3.27 показан способ представления бикубической поверхности. Кривая P\(t) получена при s = 0, а кривая P4(t) — при s = I. Прочие кубические кривые зависят от аргумента s и получены для последовательности значений t = 0,0; 0,2; 0,4; 0,6; 0,8; 1,0. Поверхность, изображенная на рис. 3.27, по сути представляет собой кубическую интерполяцию куска поверхности, ограниченного четырьмя линиями Px(t)=Q(O, t), P4(0=G0.0, Q(s,0), Q(s,l).
Особо выделяют частный случай бикубических поверхностей, когда все элементы границы <2(0, t), Q(\, t), Q(s, 0), Q(s, 1) являются прямыми линиями. Поверхности такого сорта называются линейчатыми. Если прямые линии принадлежат одной плоскости, то задаваемый ими фрагмент представляет собой четырехсторонний многоугольник.
Представим компоненты |
Px(t), |
PA{t), |
R\{t), R4(t) в принятой для кривых |
Эрмита форме: |
|
|
|
|
§п |
|
§21 |
P]x(t)=TxMHx |
§12 |
; |
P4x(t)=TxMHx §22 |
|
§13 |
|
§23 |
|
.§14. X |
(3.31) |
|
|
|
|
|
|
"§31 " |
~§4,' |
|
R]x(t)=TxMHx |
§32 |
; |
R4x(t)=TxMHx §42 |
|
§33 |
|
§43 |
|
.§34_ г |
_§44. |
|
218
3.3. Параметрические бикубические поверхности |
|
|||
Зависимости (3.31) можно записать в более компактной форме: |
|
|||
[ад, ад, вд, R4(t)]x=TxMHxGTHx, |
(3.32) |
|||
'Л... |
|
|
|
|
где |
|
|
|
|
§11 |
§12 |
§13 |
§14 |
|
§21 |
§22 |
§23 |
§24 |
|
§31 |
§32 |
§33 |
§34 |
|
.§41 |
§42 |
§43 |
§44. |
|
. j, Выполнив транспонирование обеих частей уравнения (3.32), получим
•ад'
ад
ОД
§11 |
§12 |
§13 |
§14 |
|
§21 |
§22 |
§23 |
§24 xMTHxTT=GHxxMTHxTT. |
(3.33) |
§31 |
§32 |
§33 |
§34 |
|
|
L§41 §42 |
§43 §44 J |
|
|
м- |
Подставив выражение (3.33) в уравнение (3.30), имеем |
|||
НА |
x(s,t)=SxMHxGHxxMTHxTT. |
|
||
'* |
По аналогии можно записать аналитические выражения для двух других ко- |
|||
ординат: |
|
|
|
|
|
y{s,t)=SxMHxGHyxMTHxTT; |
|
||
|
) = |
H |
T T |
. |
|
SxMxGHHzxGHzxM |
HxT |
||
H
Для поверхностей Эрмита три матрицы GHx, GHy, GHz размера 4x4 играют
такую же роль, что и матрица GH для кривых. Смысл элементов этих матриц станет яснее, если обратиться к ранее приведенным уравнениям (3.30) и (3.31). Элемент gilx представляет собой иное обозначение для х(0, 0), поскольку это стартовая точка для кривой P\x{t). Равным образом gi2x есть ни что иное, как х(0, 1), поскольку этот элемент представляет собой конечную точку кривой
P\x{t). Кроме того, g13x есть другое обозначение для —(0,0), поскольку являет- at
ся начальным касательным вектором для P\x(t). Наконец, |
есть | r f (0,0), |
|
dsdt |
поскольку является стартовым касательным вектором для R\x(t).
Используя приведенные интерпретации, перепишем матрицу GHx в следующем виде:
219
3. Математические модели геометрических объектов
х(0,0) |
х(0,1) |
Эх(0,0) |
Эх(0,1) |
|
|
|
|
dt |
dt |
|
|
410) |
х(1,1) |
Эх(1,0) |
dx(\, 1) |
|
|
|
|
|
Э/ |
(3.34) |
|
Эх(0,0) |
аьс(о,1) |
Э2х(0,0) |
Э2х(0,1) |
||
|
|||||
ds |
ds |
|
dsdt |
|
|
aix(i,о) |
дх(1,1) |
d2x(\,0) d2x{\,1) |
|
||
ds |
|
ЭзЭг |
|
|
|
По виду и смыслу матрица (3.34) делится на характерные квадратные подматрицы размером 2x2. Рассмотрим их содержание. В верхней левой части матрицы расположены координаты четырех угловых вершин фрагмента поверхности. Верхний правый и левый нижний квадранты матрицы описывают координаты х касательных векторов вдоль каждого параметрического направления фрагмента поверхности. Нижняя правая часть матрицы объединяет вторые частные производные по аргументам s и t. Эти величины описывают скручивание в углах фрагмента поверхности. Чем выше значение вторых производных, тем сильнее проявляют себя деформации данного типа.
На рис. 3.28 показан пример фрагмента поверхности Эрмита; угловые точки этого фрагмента помечены элементами матрицы GHx. Каждый вектор на этом рисунке представляет собой кортеж длиной три элемента, которые заимствованы из уравнения (3.34).
dt 6(0,1)
6(0,1)
^6(0,0) |
6(1.0) |
6(0,0)
dsdt 6(1,1)
Рис. 3.28. Пример фрагмента поверхности Эрмита
220
3.3. Параметрические бикубические поверхности
(If.
Рис. 3.29. Пример поверхности, состоящей из двух пограничных фрагментов
<1 Форма эрмитовых бикубических фрагментов представляет собой важный частный случай объектов другого вида, так называемых поверхностей Кунса. Фрагменты поверхностей Кунса могут ограничиваться кривыми любого типа и произвольной крутизны. Подобно тому, как кривые Эрмита в узлах обеспечивают гладкость класса С1 и G1, поверхности Эрмита гарантируют принадлежность этим классам в окрестности сочленения различных кусков.
Рассмотрим эти свойства более подробно. Чтобы обеспечить гладкость класса С0, граничные линии стыкуемых кусков должны быть идентичны. Это значит, что контрольные точки обеих поверхностей полностью совпадают на граничной кривой. Для выполнения условия С1 требуется полное совпадение на границе не только контрольных точек, но и касательных векторов, а также вторых смешанных производных.
Условие G1 является менее жестким. В этом случае должны совпадать только направления касательных векторов; их величины могут быть различными. Пусть, как показано на рис. 3.29, два фрагмента имеют общую границу. Причем у первого фрагмента на этой границе аргумент s = 1, а у второго — s = 0. Тогда для выполнения гладкости по классу G1 геометрические матрицы фрагментов должны иметь следующий вид:
§21 §22 823 824
§21 §22 §23 §24
_g4l |
§43 §44. |
Здесь коэффициент k > 0, а прочерками обозначены позиции, которые могут принимать любые значения.
221
3. Математические модели геометрических объектов
3.3.2. Поверхности Безье
Математическое описание бикубических поверхностей Безье можно получить по единой с поверхностями Эрмита схеме. Если выполнить выкладки, аналогичные предыдущему разделу, то получим
|
x(s,t)=SxMBxGBxxMTBxTr; |
|
|
|
|
y(s,t)=SxMBxGByxMTBxTr; |
' |
j |
(3.35) |
i |
z(s,t)=SxMBxGBz xMTBxT\ |
|
|
|
Геометрическая матрица поверхности Безье состоит из 16 контрольных точек. На рис. 3.30 показан фрагмент поверхности этого типа и положение ее контрольных точек.
Поверхности Безье, как и их двухмерные аналоги, предоставляют оператору удобные интерактивные средства управления. Для создания необходимой геометрической конфигурации разрешается менять положение контрольных точек и касательных векторов. Применение поверхностей Безье в качестве внутренней расчетной геометрической модели имеет свои преимущества. Среди них прежде всего следует упомянуть о существовании выпуклых оболочек, которые подробно обсуждались ранее, и о существовании эффективной процедуры визуализации.
Для принадлежности поверхностей классам С0 и G0 требуется, чтобы граничные линии смежных кусков кривых Безье имели четыре совпадающие контрольные точки. Принадлежность классу G1 обеспечивается более сложным условием. Для этого требуется совпадение четырех контрольных точек обоих смежных фрагментов. Таковыми для примера, приведенного на рис. 3.31, являются точки Р1 4 , Ргь, Ри, РАА- Кроме того, наборы точек, лежащие по обе стороны от граничных узлов, должны быть коллинеарными, т. е. лежать на одной пря-
мой. Для рис. 3.31 это (Р1 3 , Рш Pis), (Ргг, Ри, Pis), (Рзз, Ри, Pis) и (Р4 3 , Ли, Рл5)-
и
.'1
Рис. 3.30. Фрагмент поверхности Безье и ее контрольные точки
222
3.3. Параметрические бикубические поверхности
Общая граница фрагмента
47
Рис. 3.31. Два фрагмента поверхности Безье, граничащие по Р1 4 , /*24> ^34> Р44
•Л
3.3.3. Бисплайновые поверхности |
а |
Бисплайновыми называются поверхности, которые описываются системой уравнений следующего вида:
x(s, t)=SxMB |
|
хТт ; |
|
|
xG s |
xMl xTT; |
(3.36) |
z(s,t) = |
xG |
хГт . |
•7 |
|
B |
|
|
Для поверхностей этого вида на границах двух фрагментов автоматически выполняется принадлежность классу С2. При этом не требуется накладывать никаких дополнительных условий на контрольные точки за исключением их совпадения. Как было показано в подразд. 3.2.4, дублирование контрольных точек влечет за собой нарушение непрерывности.
Бикубические неоднородные бисплайновые поверхности главными свойствами напоминают своих двухмерных аналогов — неоднородные рациональные В-сплайны. В частности, техника подразбиения и визуализации почти без изменений переносится на трехмерный случай.
3.3.4. Нормали поверхностей |
Г £• |
|
Во многих прикладных задачах необходимо знать величину и положение нормали фрагмента бикубической поверхности. Эти сведения требуются для
223
3.Математическиемоделигеометрическихобъектов
визуализации поверхности, расчета затенения, проверки условий непересечения при проектировании механических узлов, вычисления траекторий перемещения и во многих других проектных ситуациях.
Для вывода аналитического выражения нормали воспользуемся уравнением (3.28), из которого легко найти два касательных вектора к поверхности Q(s, t).
Элементарные вычисления дают выражения для касательного вектора по s:
—Q(s, |
t)=—(SxMxGxMTxTT)=—(S)xMxGxMTxTT |
= |
|
dt |
ds |
as |
|
= [3s2, 2s, 1, O]xMxGxMT xrT .
Аналогично найдем касательный вектор по t:
—Q(s, |
t)=—(SxMxG |
xMTxTT)=SxMxG xMTx—(TT)= |
dt |
ds |
dt |
= SxMxGxMTx[3t2, It, |
1, Of. |
|
Оба полученных касательных вектора расположены параллельно поверхности Q(s, t) в любой точке (s, t), поэтому их векторное произведение является перпендикуляром к Q(s, t). Напомним, что касательные векторы представляют собой тройки, координаты которых есть значения для х, у и z для бикубической поверхности. С учетом этого запишем выражение для нормали поверхности:
— |
Q(s,t)x—Q(s,t)=[yszt-ytzs, |
zsxt-ztxs, |
xsyt-xtys], |
ds |
dt |
|
|
где xs — это сокращенная запись для координаты х касательного вектора по s; ys — сокращенная запись координаты у и т. д.
Если в некоторой точке поверхности оба касательных вектора равны нулю, то их векторное произведение тоже равно нулю. Это означает, что в данной точке представление о нормали к поверхности не имеет смысла. Напомним, что касательные векторы могут быть равны нулю в смежных точках, которые принадлежат классу С1, но не обладать принадлежностью классу G1.
Аналитическое выражение для нормали — полином высокой степени (две переменные и пятая степень), поэтому его вычисление представляет собой задачу большой трудоемкости. Во многих графических редакторах нормали подсчитываются приблизительно — по некоторым аппроксимирующим зависимостям невысокой степени.
3.3.5. Визуализация бикубических поверхностей
Для бикубических поверхностей, подобно кубическим параметрическим кривым, существует два основных способа визуализации: итеративное вычисле-
224
