Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компьютерная графика и геометрическое моделирование в информационных системах. Учебное пособие для бакалавров направлений подготовки 230100 «Информати.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
Рис. 12.8. Две кубические кривые Безье с общей точкой P
4
На рисунке 12.8 приведены две кривые Безье, имеющие общую точку «склейки» P условием, что вектора P
. Гладкость стыковки кривых Безье обеспечивается
4
и P4P5 лежат на одной прямой P3P5.
3P4
12.3.3. Форма B-сплайнов
Данный вид кривой будет более подробно рассмотрен в главе 12.4 учебного пособия, а в этом разделе приводится исключительно для унификации материала по кубическим кривым.
Кривая, представленная в виде кубического В-сплайна, в общем случае может проходить через любые управляющие точки, однако она непрерывна и, кроме того, непрерывностью изменения обладают её касательный вектор и кривизна (т.е. первая и вторая производные кри­вой непрерывны в конечных точках) в отличие от форм Эрмита и Бе­зье, у которых в конечных точках непрерывны лишь первые производ­ные (но ко
торые прох
одят через управляющие точки) [1, 3]. Таким образом, можно утверждать, что форма B-сплайнов «более гладкая», чем другие формы.
В векторной форме параметрическая кривая B-сплайна имеет вид:
где
M
1
=
S
6
При аппроксимации управляющих точек-ориентиров P
⎡ ⎢ ⎢ ⎢
− ⎢ ⎣
x(t) = TM
y(t) = TM
z(t) = TM
−−
−
G
, (12.16a)
s
sx
G
, (12.16б)
s
sy
G
, (12.16в)
s
sz
1331
⎤ ⎥
0363
⎥ ⎥
0303
⎥
0141
⎦
и ]1,,,[
23
tttT = . (12.17)
, P1, …, Pn
0
последовательностью B-сплайнов мы будем применять между каждой парой соседних точек геометрические матрицы.
51
12.4. ПОСТРОЕНИЕ КРИВЫХ ПО ТОЧКАМ
=
≤
≤
−
=
−
=
−
=
С ПОМОЩЬЮ СПЛАЙНОВ
12.4.1. Основные понятия и определения
При решении многих прикладных задач, предусматривающих по­строение кривых по точкам, может потребоваться внести изменения в одну часть кривой, не затрагивая другие [3]. Мы будем считать схему локальной, если локальные изменения не распространяются на другие части изображения. Очевидно, что многочлены Безье обладают лишь квазилокальностью. Изменение расположения или кратности одной из точек-ориентиров требует пересчёта все
й кривой, даже н
есмотря на то, что указанные изменения могут слабо влиять на ход кривой. Кусочно­полиномиальные функции несомненно являются средством реализа­ции локальных изменений. Сначала рассмотрим такие функции при­менительно к представлению кривой в виде y = y(x), а затем – приме­нительно к параметрическому представлению. В общем виде кус
линомиальные функции представляются следующим образом:
по
)()( xpxp
Точки
,
i
j
)(
j
)(
)()(
xpxp
= , 1...,,1,0
i
...,,−kxx , которые делят сегмент [a, b] на k подсегментов,
i
i
+
1
10
xxx , ;1...,,1,0
1+
ii
rj ; .1...,,1,0
ki (12.18а)
ki (12.18б)
очно-
обычно называют точками «склеивания», а точки воспроизводимой кри­вой, соответствующие этим значениям x, – узлами. Для удобства будем использовать обозначения x
= a и xk = b. Функции pi(x) представляют со-
0
бой многочлены со степенью не выше m. Условия непрерывности в точ­ках «склеивания» задаются второй группой уравнений, в которых
обозначает
)(xp
i
)( j
и
p – j-ю производную p(x) (j > 0). Иногда отсутствие
i
)0(
xp
i
ограничений указывается заданием r = 0. При r = 1 речь идёт о непрерыв­ной функции, на производные которой никаких ограничений не наложе­но. Если
1+= mr
, то сегмент [a, b] покрывается одним многочленом, и,
следовательно, r = m – максимальное число ограничений, порождающих нетривиальную кусочно-полиномиальную функцию. Случай, когда r = 3 и m = 3, имеет особое историческое и практическое значение, поскольку именно для обозначения соответствующих кусочно-полиномиальных функций был впервые предложен термин «сплайн».
Происхождение термина «сплайн» относится к тому времени, ко-
гда ещё не существовала машинная гр
афика и чер
тёжник, чтобы про­вести гладкую кривую через заданные точки, часто пользовался грузи­ками, помещая их в заданных точках и придавая с их помощью иско­мую форму гибкой деревянной линейке, называемой сплайном. Эти грузики имели выступ, который помещался в прорезь сплайна, при­крепляя его к данно
52
й точке
, но позволяя поворачиваться относительно
)(
неё. Если обратиться к теории упругости, то можно доказать, что ре­зультирующая кривая представляет собой (приближённо) кусочный кубический многочлен, являющийся непрерывным и имеющий непре­рывные первую и вторую производные. Эти условия гарантируют также, что кривая имеет постоянную кривизну и разрывы возникают лишь в третьей производной. Поскольку человеческому глазу чрезвы­чайно трудно уло
вить по
следние, результирующая кривая выглядит совершенно гладкой. Если вдоль сплайна совершается механическое движение, то непрерывность второй производной предполагает непре­рывность ускорения и, следовательно, отсутствие резких изменений приложенной силы. Эти два свойства делают весьма целесообразным применение сплайнов при решении многих прикладных задач.
12.4.2. В-сплайны
В-сплайн – это сплайн, равный нулю на всех подсегментах, за ис­ключением m + 1 [3]. На рис. 12.10 приведены примеры линейного, квадратичного и кубического В-сплайнов. Эти сплайны можно опре­делить рекурсивно следующим образом.
Определение. В-сплайн с постоянным значением на i-м подсег- менте задаётся выражением
xxx
; при1
⎧
xN
)(
=
i
⎨ ⎩
B-сплайн m-й степени на сегменте ];[
≤≤
+
10,ii
случаях.остальных в 0
xx определяется вы-
(12.19)
1++mii
ражением:
−
xx
=
xN
mi −+
i
−
xx
imi
+
+
xN
1,,
mi
−
−
xx
1
mi
++
−
xx
11
imi
+++
1,1
mi
)()()(
xN
. (12.20)
а)
б)
в)
Рис. 12.10. Примеры линейного (а), квадратичного (б) и
кубического (в) В-сплайнов
53
Уравнения (12.19) и (12.20) можно использовать для задания в
≤
≤
≤
≤
≤
≤
≤
≤
≤
≤
явном виде B-сплайнов низших степеней.
Линейный:
−
xx
Квадратичный:
xN
i
2,
)(
=
xN
i
2,
при ;
≤≤iixxx
)(
xN
2,
i
⎧ ⎪
⎪
)(
=
xN
i
⎨
1,
⎪ ⎪
⎩
)(
=
21 ++
=
i
−
xx
ii
+
2
−
xx
i
+
2
−
xx
ii
++
2
)(
xx
−
i
++
−−
xxxx
2
+
ii
−−
xxxx
)(
−
xx
3
+
i
при
12
при ;
))((
xxxx
−−
12
iiii
))((
+
))((
122
+++
iiii
2
при .
))((
−−
xxxx
2313
−+++
iiii
; при
≤≤
xxx
ii
+
1
(12.21)
≤≤
xxx
++
.21
ii
xxx (12.22)
1+
ii
))((
−−
xxxx
13
++
ii
(12.23)
))((
−−
xxxx
1213
++++
iiii
xxx (12.24)
32 ++
ii
При равномерном размещении точек склеивания на сегментах с длиной L приведённые выражения существенно упрощаются. В этом случае разумным допущением является iLx
рованную переменную u:
и = (х – xi)/ L = x/L – i. (12.25)
= и удобно ввести норми-
i
В результате уравнения, описывающие В-сплайны, принимают сле­дующий вид.
Равномерно линейный:
uu
≤≤
1,
i
Равномерно квадратичный:
2,
i
i
2,
2,
i
⎧
LuiU
=+
))((
⎨ ⎩
1
2
=+
))(( uLuiU
при
2
3
3
))(( −=+ uLuiU
4
1
))(( uLuiU
2
)
(
2
2
)3(
−=+ при 32
1;0 при
(12.26)
uu
≤≤−
.21 при2
10
u ; (12.27а)
при 21
u ; (12.27б)
u . (12.27в)
2
54
В случае равномерного распределения точек склеивания уравне-
≤
≤
≤
≤
≤
≤
ние (12.20) можно использовать непосредственно, что позволяет полу­чить выражение для кубического B-сплайна по выражению для квад­ратичного B-сплайна.
Равномерно кубический В-сплайн:
1
3
))(( uLuiU
i
3,
2
i
3,
i
3,
))(( −−−−=+ uuLuiU
3
2
))(( −−−+=+ uuLuiU
3
i
3,
=+ при 10≤≤ u ; (12.28а)
6
1
23
)2()2(
при 21
u ; (12.28б)
2
1
23
)2()2(
при 32
u ; (12.28в)
2
1
))(( uLuiU
3
)4(
−=+ при 43
u . (12.28г)
6
Используя В-сплайны в качестве базиса, произвольный сплайн можно представить в следующем виде:
−
1
k
).()(
= (12.29)
∑
−=
mi
xNaxp
,
mi
i
В этом уравнении имеется ровно k + m параметров:
....,,,
aaa Значение сплайна р(х) на каждом подсегменте оп-
11 −+−− kmm
ределяется суммой самое большее m + 1 B-сплайнов, так что сплайн p(х), действительно, обладает свойством локальности. Изменение лю-
бого из коэффициентов уравнения (12.29) приводит к изменению вида кривой только на m + 1 сегментах.
12.4.3. Применение В-сплайнов в машинной графике
B-сплайны можно использовать для порождения кривых анало-
гично тому, как это делалось с помощью многочленов Безье [3]. Если
Р
(i = 0, 1, ..., k) – множество точек-ориентиров, то сплайн можно оп-
i
ределить следующим образом:
k
).()(
= (12.30)
∑
0
=
i
tNPtP
,
mi
i
Диапазон значений t больше не должен ограничиваться сегмен-
том [0, 1] и точки склеивания t
, t2, …, t
1
должны задаваться несколь-
k – 1
ко иначе, чем это было в случае многочленов Безье. Отметим, что уравнение (12.30) эквивалентно двум парам уравнений (12.29), причём точки-ориентиры соответствуют коэффициентам этого уравнения a Очевидно, что P(t) представляет собой сумму векторов, умноженную на числа (B-сплайны), сумма которых в свою очередь равна единице.
55
.
i
Следовательно, имеет мест утверждение, что сплайн P(t) всегда лежит
≤
≤
внутри выпуклой оболочки самое большое m
+ 1 точек-ориентиров P
i.
Преимущество уравнения (12.30) состоит в том, что сплайн P(t) может представляться трёхмерным вектором, что обеспечивает полу­чение таким способом пространственных кривых.
Для того чтобы лучше понять свойства сплайнов, целесообразно обратиться к простому примеру. В случае равномерного расположения точек склеивания можно воспользоваться представлениями В-сплай­нов с помощью уравнений (12.26) – (12.28) и нормированной перемен­ной u. При замене в выражениях, определяющих
, переменной и
mjiU,−
на u + j соответствующие формулы становятся совместимыми с выра­жениями, определяющими
В-сплайнов трёх видов принимают вид:
M = 1: P(L(i + u)) = uPi + (1 – u)P
1
))((:2
2
))((:3
При записи всех трёх уравнений предполагается, что 10
. В результате уравнения равномерных
miU,
; (12.31)
i–1
⎡
3
2
1
⎡
⎢
⎢
4
⎢
⎣
⎣
3
PuuiLPm
6
3
⎡
2
u
⎢ ⎢
⎣
−++
23
2
⎤
1
⎤
⎥
−−+=+=
⎥
2
⎥
⎦
⎦
⎡
u
−
−+=+=
⎢ ⎢
⎣
2
⎤
2
Pu
⎥
2
−
i
⎥
⎦
1
1
3
)1(32
1
6
−+
2
⎤
2
)1(
−−
⎥ ⎥
⎦
3
−+
Pu (12.33)
i
2
)1(
PuPuPuuiLPm ; (12.32)
2
−−
iii
+
Pu
−1
ii
.)1(
3
−
u .
Если m + 1 точек-ориентиров лежат на прямой, то значения иско­мого сплайна также будут лежать на этой прямой.
Для того чтобы строить замкнутые кривые, достаточно задать
P
= Pm, P
–1

12.5. СРАВНЕНИЕ КРИВЫХ ЭРМИТА, БЕЗЬЕ И B-СПЛАЙНОВ

–2
= P
m–1
и т.д.
Каждое из представлений оказывается полезным в разных ситуа­циях [3]. Форма Эрмита пригодна для аппроксимации уже имеющихся поверхностей, когда необходимо добиться как соответствия точек, так и соответствия касательных векторов, в то время как представление в виде B-сплайнов удобно для аппроксимации точек и достижения С
(2)
непрерывности.
Формы Безье и B-сплайнов пригодны для работы в интерактив­ном режиме, так как их геометрические векторы состоят из одних только точек. Обе эти формы обладают свойством выпуклой оболочки, которое оказывается полезным при изображении кривых.
56
-
13. ПОСТРОЕНИЕ ПАРАМЕТРИЧЕСКИХ
Исследование моделирования поверхностей в компьютерной гра­фике показало, что существуют три широко используемых способа представления поверхностей:
1)
c помощью функций;
2)
в параметрическом виде;
3)
в полигональном виде.
Из класса параметрических поверхностей рассмотрим бикубиче­ские поверхности в форме Эрмита, Безье и B-сплайнов [1].
Бикубические поверхности задаются кубическими уравнениями от двух переменных s и t. Изменяя оба параметра от 0 до 1, можно оп­ределить все точки на куске поверхности. Если одному из параметров присвоить постоянное значение, а другой – изменять в диапазоне от 0 до 1, то в рез будем рассматривать только уравнение для x:
x(s, t) = a11s3t3 + a12s3t2 + a13s3t + a14s3 + a21s2t3 + a22s2t2 + a23s2t + a24s2 +
Запишем в более удобной форме
где S = [s3 s2 s 1]; T = [t3 t2 t 1], а T T – транспонированная матрица T.
Такая запись поверхности называется алгебраической формой представления, так как C члена. Существуют также и C ты y(s, t) и z(s, t).
Детально изучим представление поверхностей в форме Эрмита [1]. Поверхности в форме Эрмита используют в качестве исходных данных управляющие точки и касательные векторы.
В уравнении кубической кривой Эрмита заменим t на s:
Запишем уравнение так, чтобы геометрическая матрица Эрмита была не константой, а функцией t:
КУБИЧЕСКИХ ПОВЕРХНОСТЕЙ
льтате получим кубическую кривую. Для удобства мы
у
+ a31st3 + a32st2 + a33st + a34s + a41t3 + a42t2 + a43t + a44.
x(s, t) = SCxT Т,
задаёт коэффициенты бикубического много-
х

13.1. ФОРМА ЭРМИТА

и Cz, которые определяют коэффициен-
y
x(s) = SMhGhx.
tP
)(
⎤
⎡
1
⎥
⎢
tP
)(
4
⎥
⎢
SMtGSMtsx
==
)(),(
hhxh
⎢ ⎢ ⎢
⎣
. (13.1)
⎥
tR
)(
1
⎥ ⎥
tR
)(
4
⎦
x
57
Рис. 13.1. Кривые постоянного значения параметра:
P
(t) при s = 0, P4(t) при s = 1
Функции P1x(t) и P4x(t) описывают x-компоненты начальной и ко­нечной точек кривой, задаваемой параметром s. Для каждого значения
t определяются некоторые две конечные точки. Аналогично R R
(t) описывают касательные векторы в конечных точках кубической
4x
кривой, построенной в зависимости от s. На рисунке 13.1 показаны кривые P
(t) и P4(t), а также кубические кривые, для которых t = 0, 0,2,
1
0,4, 0,8, и 1,0. Кусок поверхности можно представить как фигуру, по-
строенную путём интерполяции кривой между кривыми P при этом касательный вектор в начальной точке будет R ной – R
(t). В том случае, если интерполируемые линии являются пря-
4
(t), а в конеч-
1
мыми, получается линейчатая поверхность. Если к тому же кривые
P
(t) и P4(t) лежат в одной плоскости, то линейчатая поверхность будет
1
плоской, а кусок поверхности оказывается четырёхсторонним много­угольником.
Пусть теперь каждая из кривых P лена кубическим многочленом в форме Эрмита:
q
⎤
⎡
11
⎥
⎢
q
12
⎥
⎢
TMtP
=
hx
⎥
⎢
q
13
⎥
⎢
⎥
⎢
q
14
⎦
⎣
x
58
)(
1
(t), P4(t), R1(t) и R4(t) представ-
1
q
⎤
⎡
21
⎥
⎢
q
22
⎥
)(
;
4
⎢
TMtP
=
hx
; (13.2)
⎥
⎢
q
23
⎥
⎢
⎥
⎢
q
24
⎦
⎣
x
(t) и
1x
(t) и P4(t),
1
q
⎤
⎡
31
⎥
⎢
q
32
⎥
)(
1
⎢
TMtR
=
hx
;
⎥
⎢
q
33
⎥
⎢
⎥
⎢
q
34
⎦
⎣
x
)(
=
4
q
⎤
⎡
41
⎥
⎢
q
42
⎥
⎢
TMtR
hx
.
⎥
⎢
q
43
⎥
⎢
⎥
⎢
q
44
⎦
⎣
x
Четыре кубических многочлена можно представить в виде век­тор-строки
qqqq
⎡ ⎢
[]
TMtRtRtPtP
)(),(),(),(
4141
⎢
==
h
⎢ ⎢
Транспонируя данное уравнение и используя тождество
T
(ABC)
= CTBTAT, получим
)(
tP
⎤
⎡
1
⎢ ⎢ ⎢
1
⎢ ⎢
4
⎣
Теперь подставим (13.3) в (13.1):
⎡
⎥
⎢
)(
tP
4
⎥
⎢
=
⎥
⎢
)(
tR
⎥
⎢
⎥
)(
tR
⎣
⎦
⎣
qqqq
⎤
41312111
⎥
qqqq
24232212
⎥ ⎥
qqqq
34332313
⎥
qqqq
44342414
⎦
x
hxh
h
TT
TMQSMtsx =),( .
TT
=
41312111
qqqq
24232212
qqqq
34332313
qqqq
44342414
TT
TMQTM
hx
⎤ ⎥ ⎥
.
⎥ ⎥ ⎦
x
. (13.3)
Аналогично
TT
;
TMQSMtsy =),(
hyh
TMQSMtsz =),( .
hzh
TT
Из предшествующих выкладок следует, что коэффициент q11 есть x(0, 0), так как является начальной точкой для P
очередь задаёт начальную точку для x(s, 0). Аналогично q так как является конечной точкой P начальную точку для x(s, 1). Видно также, что
q =
13
(t), которая в свою очередь задаёт
1x
dx
)0,0(
,
dt
(t), которая в свою
1x
есть x(0, 1),
12
так как является начальным касательным вектором для P1x(t), а по­скольку
2
q =
33
xd
dtds
представляет собой начальный касательный вектор для R
,
)0,0(
(t), который,
1x
в свою очередь, задаёт начальный тангенс угла наклона для x(s, 0).
59
Используя эти рассуждения, можно записать матрицу Qx:
⎡ ⎢
xx
0100
⎢ ⎢ ⎢ ⎢
Q
=
⎢
x
dx
⎞
⎛
⎢
⎟
⎜
⎟
⎜
ds
⎢
⎠
⎝
⎢
dx
⎞
⎛
⎢
⎟
⎜
⎟
⎜
⎢
ds
⎠
⎝
⎣
xx
1110
dx
⎞
⎛
⎟
⎜
⎟
⎜
ds
⎠
⎝
dx
⎞
⎛
⎟
⎜
⎟
⎜
ds
⎠
⎝
dx
⎞
⎛
⎟
⎜
⎟
⎜
dt
⎠
⎝
dx
⎞
⎛
⎟
⎜
⎟
⎜
dt
⎠
⎝
2
⎛
xd
⎜ ⎜
0100
1110
dtds
⎝
2
⎛
xd
⎜ ⎜
dtds
⎝
⎛ ⎜
⎜ ⎝
⎛ ⎜
⎜ ⎝
⎛
⎞
⎜
⎟
⎜
⎟
⎝
⎠
00
⎛
⎞
⎜
⎟
⎜
⎟
⎝
⎠
10
dx
dt dx
dt
⎤
⎞ ⎟
⎥
⎟ ⎠
0100
⎥ ⎥
⎞ ⎟
⎥
⎟ ⎠
1110
⎥
⎞
xd
⎟ ⎟
⎠
01
⎞
xd
⎟ ⎟
dtds
⎠
11
. (13.4)
⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦
2
dtds
2
В верхнем левом углу матрицы (13.4) размером 2 × 2 находятся четыре координаты углов фрагмента поверхности, в верхней правой и нижней левой частях матрицы размещены тангенсы углов наклона касательных векторов в угловых точках для каждой из граничных па­раметрических кривых. В нижнем углу матрицы расположены частные производные по обоим параметрам в угловых точках. Это оп кр
ивизну, так как чем больше их значения, тем сильнее изгиб в угло-
ределяет
вой точке фрагмента поверхности. На рисунке 13.2 показан пример поверхности Эрмита.
60
Рис. 13.2. Параметры поверхности Эрмита
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]