6.2. Интерполяция в форме Эрмита 147
x
y
0
A
B
C
u
v
(a) Сопряжение не являет-
ся гладким.
x
y
0
B
C
A
u
v
(b) Сопряжение является
геометрически гладким.
x
y
0
B
C
A
u = v
(c) Сопряжение является
параметрически гладким.
Рис. 6.3: Гладкость сопряжения сегментов.
Определение 64 (гладкость сопряжения сегментов) Допустим, неко-
торая кривая p(u) проходит через три точки опорного ансамлбя: A, B и C.
С точки зрения эрмитовой интерполяции, мы можем рассматривать ее как
состоящую из двух сегментов: AB и BC.
1. Если вектор финиша сегмента AB не параллелен вектору старта сег-
мента BC, то сопряжение сегментов не является гладким.
2. Если вектор финиша сегмента AB сонаправлен вектору старта сегмен-
та BC, то сопряжение сегментов называется геометрически гладким.
3. Если же вектор финиша сегмента AB в точности равен вектору старта
сегмента BC, то сопряжение сегментов параметрически гладкое.
Отметим, что, с точки зрения точной интерполяции, вопрос о гладкости со-
пряжения сегментов вообще не встает: она подразумевается как данность.
Но если опорный ансамбль состоит из достаточно большого числа точек, то
точная интерполяция приводит к огромному числу вычислений. Эрмитов
же алгоритм позволяет рассматривать двухточечные ансамбли как отдель-
ные сегменты и сопрягать их с любой гладкостью при помощи одних и тех
же действий.
Пример 94 Пусть требуется провести кривую через три точки данного опорно-
го ансамбля A(1, 1), B(3, 1), C(5, 1) так, чтобы кривая стартовала в точке A в
направлении вектора v =(0, 1), проходила через точку B в направлении вектора
w =(0, −1) и финишировала в точке C в направлении вектора s =(1, 0). Факти-
чески, нам придется решить дважды задачу об эрмитовой интерполяции ансабля
из двух точек:
1. для точек A(1, 1) и B(3, 1) с направлениями v =(0, 1) и w =(0, −1),
2. для точек B(3, 1) и C(5, 1) с направлениями w =(0, −1) и s =(1, 0).
Приступим к решению первой задачи. Будем искать эрмитову интерполяционную
кривую p(u) в виде кубической параметризации:
p(u)=
a
10
+ a
11
u + a
12
u
2
+ a
13
u
3
a
20
+ a
21
u + a
22
u
2
+ a
23
u
3
,
где коэффициенты координатных полиномов вычисляются матричным умноже-
нием:
a
10
a
11
a
12
a
13
=
1000
0010
−33−2 −1
2 −211
1
3
0
0
=
1
0
6
0