Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Компьютерная графика и геометрическое моделирование в информационных системах. Учебное пособие для бакалавров направлений подготовки 230100 «Информати.pdf
X
- •ВВЕДЕНИЕ
- •5. ПРОЕЦИРОВАНИЕ ТРЁХМЕРНЫХ ОБЪЕКТОВ
- •6. РАСТРОВОЕ ТЕКСТУРИРОВАНИЕ
- •10. МОДЕЛИ ОСВЕЩЕНИЯ
- •12. ВОСПРОИЗВЕДЕНИЕ КРИВЫХ
- •12.1. ИНТЕРПОЛИРОВАНИЕ С ПОМОЩЬЮ МНОГОЧЛЕНОВ
- •12.2. МНОГОЧЛЕНЫ БЕЗЬЕ
- •12.3. ПАРАМЕТРИЧЕСКИЕ КУБИЧЕСКИЕ КРИВЫЕ
- •13.1. ФОРМА ЭРМИТА
- •12.5. СРАВНЕНИЕ КРИВЫХ ЭРМИТА, БЕЗЬЕ И B-СПЛАЙНОВ
- •13.2. ФОРМА БЕЗЬЕ
- •13.3. ФОРМА B-СПЛАЙНОВ
- •14. ПРИБЛИЖЕНИЕ И ВОСПРОИЗВЕДЕНИЕ ПОВЕРХНОСТЕЙ
- •14.2. ПЛАЗОВЫЕ ПОВЕРХНОСТИ
- •14.3. ПОВЕРХНОСТЬ КУНСА
- •14.4. ПОСТРОЕНИЕ ПОВЕРХНОСТЕЙ ПО ОРИЕНТИРАМ
- •16. МОДЕЛИРОВАНИЕ ГЕОМЕТРИЧЕСКИХ ФОРМ
- •16.1. МЕТОДЫ ПОСТРОЕНИЯ МОДЕЛЕЙ
- •16.2. ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ МОДЕЛЕЙ
- •16.3. ДВУМЕРНОЕ МОДЕЛИРОВАНИЕ
- •16.4. ТРЁХМЕРНОЕ МОДЕЛИРОВАНИЕ
- •ЗАКЛЮЧЕНИЕ
- •СПИСОК ЛИТЕРАТУРЫ

Рис. 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
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. Параметры поверхности Эрмита
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
