Добавил:
sergeevpavel0406@mail.ru СОВА Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика в техническом университете / Информатика в техническом университете. Компьютерная графика

.pdf
Скачиваний:
83
Добавлен:
06.03.2018
Размер:
6.96 Mб
Скачать

3.2. Параметрические кубические кривые

раметра /,. Это значение будем называть узловым. Начальный узел расположен в точке ?з, конечный — в tm+\, общее число узлов на кривой равно т-\.

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

Название «однородный сплайн» означает, что все узлы расположены на равном расстоянии по значениям параметра t. Без потери общности можно предположить ц = 0, tM - t,•• = 1. В подразд. 3.2.5 рассматриваются сплайны, у которых расстояния между узлами могут быть не равны. Такие объекты называются неоднородными В-сплайнами. Термин «нерациональные» используется для того, чтобы

У('У

Р\

О

x(t)

Рис. 3.17. Пример В-сплайна, обра- зованногосегментамиQ^-Qg'-

• — узлы; • — контрольные точки

отличить нерациональные объекты от так называемых рациональных сплайнов. Последние представляют собой параметрические кривые, у которых координаты x{t), y(i) и z{t) представляют собой отношение двух кубических полиномов. Рациональные сплайны рассматриваются в следующем разделе. Префикс «В» означает, что кривые этого вида представляют собой взвешенную сумму полиномиальных базисных функций. Он вводит явное различение В-сплайнов от натуральных, которые этим свойством не обладают.

Каждый из т - 2 криволинейных сегментов В-сплайна задается четырьмя точками из т + 1 контрольных. В частности, сегмент £2, определяется контрольными точками Pi ъ, Р,_2, Л-1 и Pt. Таким образом, геометрический вектор В-сплайна GB для сегмента <2/ имеет следующий вид:

ri-3

ri-2

т.

Pi

Первый сегмент <23 кривой задается контрольными точками Ро-Рз при значениях параметра t в диапазоне от t3 = 0 до t4 = 1, положение сегмента QA определяется точками Р\ -РА И значениями параметра в диапазоне от и = 1 до t5 = 2. Наконец, последний сегмент Qm задается посредством контрольных точек Рт-3,

Рт-2, Рт-\, Рт в диапазоне от tm = т - 3 до tm+] = га - 2. В общем случае сегмент Qt берет свое начало в районе контрольной точки Р^2, а заканчивается в окрестно-

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

195

3. Математические модели геометрических объектов

у(О

о x(t)

Рис. 3.18. Пример В-сплаина с разными положениями одной контрольной точки (Р4 ):

• — узлы; • — контрольные точки; 1 — исходная кривая; 2 — кривая после

с д в и г а

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

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

дам кривых, обсуждаемых далее. Обозначим через Г, вектор-строку:

[(t-tf, (t-tf, t-b), 1].

Тогда формулу В-сплайна для сегмента / можно записать в следующем виде:

Qi(t) = Ttx MBs x GBsj, * , . < * « ti+l.

(3.13)

Уравнение всей кривой можно получить, применив уравнение (3.13) для 3 < i «£ т.

Пропуская промежуточные вычисления, приведем выражение базисной матрицы Мв

В-сплайна:

-1

3

-3

1

3

-6

3

0

-3

0

3

0

1

4

1

0

Стыковочные функции Вв записываются

 

(по аналогии с кривыми Безье и Эрмита) в ви-

1 t

 

де TtxMBs. Важно, что стыковочные функ-

. 3 .19. Стыковочные функции

Р и с

ции всех криволинейных сегментов В-сплайна

В-сплайна

196

3.2. Параметрические кубические кривые

равны друг другу. Для каждого г'-го сегмента значение t - ?, лежит в пределах от О (при t = tj) до 1 (при t = f,+i). Если заменить t - ?, на t, а интервал [th ?,+,] на [О, 1], то получим

В в $ Bs [ В з , B i , B i , B J

 

 

= -[-t3+3t2-3t + l, 3t3-6t2+4,

-3t3+3t2+3t + l,

t3] =

(3.14)

6

 

 

 

= -[(l-?)3 , 3t3-6t2+4, -Зг3 +Зг2

+Зг + 1, ?3];

0 < t < 1.

 

6

 

 

 

На рис. 3.19 показаны все четыре стыковочные функции В-сплайна. Отметим особенности этих кривых: на концах единичного интервала три из четырех функций отличны от нуля; все функции неотрицательны, а их сумма равна единице. При этом каждый сегмент кривой принадлежит некоторой выпуклой оболочке.

Развернем уравнение (3.13), заменив на втором шаге преобразований t-t-, на Г.

Bs

B(

=BBs3 x /^з +BBs_2

x Pt_2 +BBs_{ x />_,

+BBso

i

_ (1-Q3

n

, 3?3 -6f2 +4n

, -3f3+3f2+3?+ln

t\

( З Л 5 )

D O

 

 

D O

 

 

Покажем, что сегменты Qt и Qi+] в точке своего сочленения принадлежат классам С0, С1, С2. Рассмотрим координату х, которую с левой и правой сторон узла ?,+i можно записать в виде x,{t - t,) и xi+i(t - ?,). Все выкладки, которые далее приведены для координаты х, можно распространить на координаты у и z.

Для доказательства утверждения достаточно подтвердить правильность соотношений

dXj(tM) = dxM{tM) ш dt dt

d2xt(tM)

=d2xM{tM)

dt2

dt2

'

Заменим аргумент t - t, на t и перепишем эти уравнения в следующем виде:

xi \t-tj=l =xi+\ \t-ti+] = 0'

^L\

 

=^!±L\

 

=0;

dt

'

dt

M

 

d2xi.

 

_d2xM

,

_

2

lf-/.=l - ~Y~ \t-ti+, — U-

dr

'

dtz

'

'

197

3. Математические модели геометрических объектов

 

Вычислив приведенные выражения, получим

.™iffr'-

 

Xi

l/-?,=l ~Xi+\

l-r,-+1=0

 

 

 

_dxM

 

< > •

dt

\t-t=\ •

dt "-'•

 

 

 

 

d\M

4- P

 

dt 2M=>

dt 2 M+ i=0"

 

 

В-сплайны обладают высокой степенью гладкости. За это полезное во многих приложениях свойство приходится платить некоторой потерей управляемости данного сорта объектов. Формой кривой можно управлять изменяя положения контрольных точек. Отметим несколько важных частных случаев. Если положить Pj_2 = Pi 2, то кривая пройдет ближе к данной контрольной точке. Сегмент Qj кривой, в пределах которого локализовано данное воздействие, зависит теперь только от трех контрольных точек, а точка Pt_2 = P,_i в уравнении (3.15) имеет двукратный вес и соответственно большее влияние на поведение данного фрагмента. Если некоторая контрольная точка используется 3 раза, например Pi г = Л-i = Л> то уравнение (3.15) принимает вид

Qi (0=BBS_3 х /ь + ( V 2 + V

а сегмент Qt превращается в прямую линию.

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

смежных сегментов

перекрываются;

точка сочленения сегментов <2з и Q4

Ро

Pi

PA PO

Pi

Рис. 3.20. Влияние контрольных точек на положение сегментов В-сплайна:

а — контрольные точки различные; б — две контрольные точки Р, и Р2

совпадают;

в — три кон-

трольные точки Р\, Р2 и Р3 совпадают;

 

выпуклая оболочка сегмента Qy,

 

 

выпук-

 

 

 

лая оболочка сегмента Q4 .

...,-.,..,

 

3.2. Параметрические кубические кривые

принадлежит области пересечения оболочек. На рис. 3.20, б положение контрольных точек Р] и Р2 совпадает. В результате выпуклые оболочки соседних фрагментов кривой получили общую границу по линии Р2Ръ а точка сочленения сегментов принадлежит этой прямой. На рис. 3.20, в показан пример с тремя совпадающими контрольными точками (Р, = Р2 = Р3)- Это самый строгий тип ограничений приводит к вырождению выпуклых оболочек и накладывает предельно жесткие ограничения на размещения точки сочленения сегментов. В этом случае точка сочленения сегментов совпадает с тройной контрольной точкой.

3.2.5. Неоднородные нерациональные В-сплайны

Как отмечалось в подразд. 3.2.4, у однородных нерациональных сплайнов расстояния между соседними точками сочленения равны между собой. Иногда это жесткое ограничение преодолевается введением неоднородных нерациональных В-сплайнов. Эти сплайны могут иметь неравномерную последовательность узлов. У сегментов кривых этого вида стыковочная функция в общем случае неодинаковая.

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

Чтобы рассмотреть неоднородные В-сплайны в общем случае, требуется немного изменить принятые ранее соглашения об обозначениях. Как и ранее, сплайн представляет собой непрерывную последовательность сегментов, которые продуцируются кубическими полиномами. Положение кривой задается контрольными точками Р0т. Узлы кривой образуют неубывающую последовательность to-tm+4, число узлов превосходит число контрольных точек ровно на четыре. Минимальное число контрольных точек равно четырем, поэтому самая короткая последовательность узлов равна восьми.

По определению неоднородных нерациональных В-сплайнов последовательность узлов должна быть неубывающей. В частности, расстояния между соседними узлами могут быть равны. В подобных ситуациях можно говорить о кратности узлов и параметров. Пусть, например, последовательность значений параметра для узлов некоторой кривой имеет вид (0, 0, 0, 1, 1, 2, 3, 4, 4, 5, 5, 5, 5). Здесь значение 0 имеет кратность четыре, 1 — кратность два, значения 2 и 3 характеризуются единичной кратностью и т. д.

3. Математические модели геометрических объектов

Сегмент кривой Q, задается контрольными точками Р,_3, Pi-2, Pi \, Pi и стыковочными функциями #,-_з,4(0> B(_24(t), Bt_lA{t), ^i,4(0 в виде взвешенной суммы

Кривая не определена за пределами интервала fo, ?m+i]- Если ?,• = /,+ь то сегмент <2, вырождается в точку, что дает дополнительные возможности по обработке неоднородных сплайнов.

В отличие от других типов сплайнов для неоднородных нерациональных В-сплайнов не существует единственного набора стыковочных функций. Они зависят от интервалов между узлами и определяются рекурсивно. Обозначим через Bjj(t) стыковочную функцию ./'-го порядка контрольной точки Р,-. Поскольку рассматриваются кубические сплайны, то рекурсивное определение будет ограничено функциями вида Bi4(t). Рекурсивные соотношения, задающие стыковочные функции, имеют следующий вид:

,в противном случае;

Д2 ( 0 = - ^ - я , - ,(0 + ?;+2_~г Д,-

h

',42 h+l

I

A

M

o

(

)

, + 1 > 3 ( )

 

 

fi+3 ~ '1

 

 

'1+4 ~ 'i+l

На рис. 3.21 показана схема вычисления стыковочных функций (3.16). Рисунок демонстрирует, почему для вычисления четырех стыковочных функций требуется вектор длиной восемь. На интервале 0 < t < 1 функция BX\{t) равна единице, все остальные функции принимают нулевое значение. Очевидно, что Вг,г(О и #з,2(О представляют собой линейные функции и служат для задания линейной интерполяции между двумя контрольными точками. Функции B]i3(t), #2,з(0 и #з,з(О являются квадратичными и служат для определения квадратичной интерполяции.

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

Можно показать, что все стыковочные функции принимают неотрицательные значения, а их сумма равна единице. Это значит, что все сегменты неоднородного нерационального В-сплайна лежат внутри некоторой выпуклой оболочки, опирающейся на четыре контрольные точки. -д ....;„ „;„,„_ .

200

5,2(0

•50,2(0=0

 

,з(0=0-

 

 

 

1 S

 

1

 

 

 

52 ,2 (0=

 

0

1

\

 

 

 

1-

 

 

 

 

0

 

1

 

1

 

/

 

 

 

0

1

53,2(0=

 

1-

 

 

/

 

 

 

 

0

 

1

 

В4,2«)=0

 

 

 

 

 

0

1

,2(0=0

 

 

 

t7=o

 

•\

V 1

"50,4(0=

0

 

1-

 

5i,4(0=

 

 

 

/

 

 

0

1

 

1-

 

•52,4(0=

 

/Л.

 

0

1

 

1-

 

 

0

1

Рис. 3.21. Схема вычисления стыковочных функций: распределение узлов кривой задается вектором (0, 0, 0, 0, 1, 1, 1, 1)

3. Математические модели геометрических объектов

Увеличение кратности узлов влечет за собой два главных следствия. Вопервых, каждое значение аргумента г, принадлежит выпуклой оболочке точек Pi-з, Л-2 и Р, ]. Если величины ?, и ti+l равны, то они, с одной стороны, должны принадлежать выпуклой оболочке Р,_3, Л-г и Л-i и, с другой стороны, оболочке Pi-2, Pi-\ и Р^ Это значит, что они будут лежать на прямой, соединяющей точки Р,_2 и Р,_,. Если tt - ti+\ = ti+2, то такой узел обязан совпадать с контрольной точ-

кой />,_,. Условие /,• = ti+\ = ti+2 = ti+3 требует размещения узла сразу на двух контрольных точках /*,-_] и Pj. Это значит, что кривая в данном узле претерпевает

разрыв. Кроме того, кратные узлы снижают максимальный уровень гладкости кривой.

На рис. 3.22 показаны два примера кривых, поясняющих зависимость формы от кратности узлов. Все узлы верхней кривой, изображенной на рис. 3.22, а, имеют кратность, равную единице. Последовательность узлов можно описать вектором (0, 1, 2, 3, 4, 5). В местах сочленения сегментов кривая принадлежит классам С и G2. Сегменты этой кривой задаются четырьмя контрольными точками и зависят от четырех стыковочных функций. Каждый фрагмент принадле-

У

б

Рис. 3.22. Влияние кратных узлов на поведение кривых:

а — без кратных узлов; б — с одним двойным узлом; —, ••••, границы выпуклых оболочек

202

3.2. Параметрические кубические кривые

жит выпуклой оболочке. Смежные сегменты имеют по три общие контрольные точки. Например, сегмент <23 зависит от точек Ро, Р], Р2, Рз, а следующий на ним сегмент Q4 задается точками Р\, Р2, Рз и Р4.

Кривая, представленная на рис. 3.22, б, имеет один двойной узел f4 = ts, поэтому сегмент Q4 равен нулю. Последовательность узлов можно записать в виде вектора (0, 1, 1,2, 3, 4). В результате сегменты £>з и Q5 становятся смежными. Общей частью их выпуклых оболочек является прямая Р2Рз- Точка сочленения сегментов принадлежит этой прямой. В точке сочленения кривая обладает гладкостью по классам С1 и G2.

Еще два примера кривых приведены на рис. 3.23. Последовательность узлов, изображенная на рис. 3.23, а, задается вектором (0, 1, 1, 1, 2, 3), что означает наличие узла кратности три. В результате сегменты Q4 и Q$ вырождаются в точку. Выпуклые оболочки сегментов Q3 и Q6 пересекаются в одной точке Р3. В соответствии с этим условием кривая должна проходить через данную контрольную точку.

Рис. 3.23. Влияние узлов высокой кратности на поведение кривых:

а— с одним узлом кратности три; б — кривая с узлом кратности четыре;

—,

 

границы выпуклых оболочек

 

203

3. Математические модели геометрических объектов

h=h=h=\

U=h=t6=h=l

•Л

Рис. 3.24. Примеры вырожденных сплайнов:

а— форма сплайна задается конечными точками; б — открытый сплайн с узловым вектором (0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 5, 5, 5, 5); в — замкнутый сплайн, задаваемый узловым вектором (0, 0, 0, 0, 1, 1, 2, 2, 3, 4, 5, 5, 5, 5)

Кривая, приведенная на рис. 3.23, б, имеет узел кратности четыре, а соответствующий вектор узлов имеет вид (0, 1, 1, 1, 1,2). Сплайн состоит из двух сегментов 2з и Q7, которые не имеют общих контрольных точек, что приводит к нарушению непрерывности.

На рис. 3.24 показаны три кривые, полученные описанным математическим аппаратом. Сплайн, представленный на рис. 3.24, а, описывается вектором узлов (0, 0, 0, 0, 1, 1, 1, 1). Фактически положение этой кривой определяется конечными точками, промежуточные точки не оказывают влияния на ее форму и положение. Это вырожденная форма неоднородного нерационального В-сплайна, которая совпадает с кривой Безье. Два других В-сплайна (рис. 3.24, б, в) начинаются и оканчиваются в узлах кратности три. Они описываются одинаковыми узловыми векторами (0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 5, 5, 5, 5), но различными кон-

204