ВУЗ:
Составители:
Основы компьютерной графики для программистов 53
____________________________________________________________________________________________________________________
http://www.ksu.ru/persons/9134.ru.html
() ( )
∑
=
−=
3
0
j
j
iiji
xxaxS .
Задача построения полинома сводится к нахождению коэффициентов
ij
a . Поскольку
для каждого из отрезков
[]
1
,
+ii
xx необходимо найти 4 коэффициента
ij
a , то всего
количество искомых коэффициентов будет
m4
. Для нахождения всех коэффициентов
определим соответствующее количество уравнений. Первые
()
1−m уравнений
получаем из условий совпадения значений функции во внутренних узлах
i
x , 1,1 −= mi .
Следующие
()
12 −m
уравнений получаем аналогично из условий совпадения значений
первых и вторых производных во внутренних узлах. Вместе с первым условием
получаем
241111
−
=
+
+−+−+− mmmmm уравнений. Недостающие два уравнения
можно получить заданием значений первых производных в концевых точках отрезка
[]
m
xx ,
0
. Так могут быть заданы граничные условия.
Сплайновые кривые Эрмита и Безье
Перейдем к более сложному случаю – заданию кривых в трехмерном пространстве. В
случае функционального задания кривой
(
)
()
⎩
⎨
⎧
=
=
xfz
xfy
возможны многозначности в случае
самопересечений и неудобства при значениях производных равных
∞ . Ввиду этого
будем искать функцию в параметрическом виде. Пусть
t
- независимый параметр,
такой что
10
≤
≤
t
. Кубическим параметрическим сплайном назовем следующую
систему уравнений:
(
)
()
()
⎪
⎩
⎪
⎨
⎧
+++=
+++=
+++=
zzzz
yyyy
xxxx
dtctbtatz
dtctbtaty
dtctbtatx
23
23
23
Координаты точек на кривой описываются вектором
(
)
(
)
(
)
(
)
tztytx ,,
, а три производные
задают координаты соответствующего касательного вектора в точке. Например, для
координаты
x
:
xxx
ctbta
dt
dx
++=
23
2
.
Одним из способов задания параметрического кубического сплайна является указание
координат начальной и конечной точек, а также векторов касательных в них. Такой
способ задания называется формой Эрмита. Обозначим концевые точки
1
P и
4
P , а
касательные векторы в них
1
R
и
4
R
. Индексы выбраны таким образом с учетом
дальнейшего изложения.
Будем решать задачу нахождения четверки коэффициентов
xxxx
dcba ,,,, так как для
оставшихся двух уравнений коэффициенты находятся аналогично. Запишем условие
для построения сплайна:
()
x
Px
1
0 = ,
(
)
x
Px
4
1
=
,
(
)
x
Rx
1
'
0 = ,
(
)
x
Rx
4
'
1 = (*)
Перепишем выражение для
x
в векторном виде [3]:
Основы компьютерной графики для программистов 53 ____________________________________________________________________________________________________________________ 3 S i (x ) = ∑ aij (x − xi ) . j j =0 Задача построения полинома сводится к нахождению коэффициентов aij . Поскольку для каждого из отрезков [xi , xi+1 ] необходимо найти 4 коэффициента aij , то всего количество искомых коэффициентов будет 4m . Для нахождения всех коэффициентов определим соответствующее количество уравнений. Первые (m − 1) уравнений получаем из условий совпадения значений функции во внутренних узлах xi , i = 1, m − 1 . Следующие 2(m − 1) уравнений получаем аналогично из условий совпадения значений первых и вторых производных во внутренних узлах. Вместе с первым условием получаем m − 1 + m − 1 + m − 1 + m + 1 = 4m − 2 уравнений. Недостающие два уравнения можно получить заданием значений первых производных в концевых точках отрезка [x0 , xm ] . Так могут быть заданы граничные условия. Сплайновые кривые Эрмита и Безье Перейдем к более сложному случаю – заданию кривых в трехмерном пространстве. В ⎧ y = f (x ) случае функционального задания кривой ⎨ возможны многозначности в случае ⎩ z = f (x ) самопересечений и неудобства при значениях производных равных ∞ . Ввиду этого будем искать функцию в параметрическом виде. Пусть t - независимый параметр, такой что 0 ≤ t ≤ 1 . Кубическим параметрическим сплайном назовем следующую систему уравнений: ⎧ x(t ) = a x t 3 + bx t 2 + c x t + d x ⎪ ⎨ y (t ) = a y t + by t + c y t + d y 3 2 ⎪ z (t ) = a t 3 + b t 2 + c t + d ⎩ z z z z Координаты точек на кривой описываются вектором (x(t ), y (t ), z (t )) , а три производные задают координаты соответствующего касательного вектора в точке. Например, для координаты x : dx = 3a x t 2 + 2bx t + c x . dt Одним из способов задания параметрического кубического сплайна является указание координат начальной и конечной точек, а также векторов касательных в них. Такой способ задания называется формой Эрмита. Обозначим концевые точки P1 и P4 , а касательные векторы в них R1 и R4 . Индексы выбраны таким образом с учетом дальнейшего изложения. Будем решать задачу нахождения четверки коэффициентов a x , bx , c x , d x , так как для оставшихся двух уравнений коэффициенты находятся аналогично. Запишем условие для построения сплайна: x(0) = P1x , x(1) = P4 x , x ' (0) = R1x , x ' (1) = R4 x (*) Перепишем выражение для x в векторном виде [3]: http://www.ksu.ru/persons/9134.ru.html
Страницы
- « первая
- ‹ предыдущая
- …
- 51
- 52
- 53
- 54
- 55
- …
- следующая ›
- последняя »