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

0085730_32E51_mosin_v_g_matematicheskie_osnovy

.pdf
Скачиваний:
31
Добавлен:
12.03.2016
Размер:
1.22 Mб
Скачать

6.1. Точная интерполяция

141

значно, исходя из координат точек опорного ансамбля:

a11

=

3

4

1

xB

,

a10

 

1

0

0

xA

 

a12

2

4

2 xC

 

a21

=

3

4

1

yB .

a20

 

1

0

0

yA

 

a22

2

4

2 yC

 

Матрица, фигурирующая в вычислениях, называется квадратичной матрицей точной интерполяции.

Доказательство Мы будем предполагать, что интересующая нас параметризация является равномерной на отрезке [0, 1], то есть —

p(0) = A, p(1/2) = B , p(1) = C .

Придавая переменной u значение 0, приходим к следующему векторному равенству:

a10 + a11

0 + a12

02

xA

 

 

a10

 

xA

.

a20 + a21

·· 0 + a22 ··

02 = yA ,

 

откуда

a20

= yA

Далее, придавая переменной u значение 1/2, получим:

 

 

 

 

a10 + a11

1/2 + a12

(1/2)2

 

xB

, откуда

 

a20

+ a21 ··

1/2 + a22 ··

(1/2)2

= yB

 

a20

+ a21 ··

1/2 + a22 ··

1/4

=

yB .

 

 

 

 

a10

+ a11

1/2 + a12

1/4

 

xB

 

 

 

 

Наконец, придавая переменной u значение 1, получим еще одно векторное равенство:

a10 + a11

1 + a12

··

12

=

xC

,

 

a20

+ a21

·· 1 + a22

12

yC

откуда

a20

+ a21

+ a22

 

= yC

.

 

 

a10

+ a11

+ a12

 

 

 

xC

 

 

 

Рассмотрим равенства первых координат в полученных трех векторных равенствах. Они образуют линейную систему относительно переменных a10, a11, a12, состоящую из трех уравнений:

a10 = xA ,

a10 + 12 a11 + 14 a12 = xB ,a10 + a11 + a12 = xC .

Воспользуемся для ее решения методом матричного обращения, для чего преобразуем ее предварительно к матричному виду:

1

1/2

1/4

a11

=

xB .

1

0

0

a10

 

xA

1

1

1 a12

xC

142

Глава 6. Интерполяция кривых

Отсюда неизвестные a10, a11, a12 выражаются в виде вектора-столбца:

a10

 

 

 

1

0

0

 

1

xA

.

a11

=

1

1/2

1/4

 

xB

a12

 

 

 

1

1

1

 

 

xC

 

Остается вычислить обратную матрицу. Для ее нахождения воспользуемся методом Гаусса.

 

1 1/2 1/4

0 1 0

 

I

 

 

0 1/2

 

1/4

 

1 1 0

4

 

 

 

1

 

0

 

0

 

1

0

0

 

 

I

 

 

1

0

 

0

 

 

1

0

0

 

 

 

 

1

 

1

 

1

0 0 1

 

 

 

0

1

 

1

1 0 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 0

0

 

 

1 0 0

 

 

 

 

 

 

1 0 0

 

 

1

0

 

0

 

 

 

 

0

2

1

 

4

4

0

III

 

0 1

0

 

3

4

 

1

 

 

 

0 1 1

 

1 0 1

 

 

 

 

0 1 1

 

1 0

 

1

II

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

0

 

 

1

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

0

 

 

3

 

4

1

II

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 0 1

 

2

 

4

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом, выражение для вычисления коэффициентов первого параметризующего многочлена получено:

a11

=

3

4

1

xB .

a10

 

1

0

0

xA

a12

2

4

2 xC

Коэффициенты второго многочлена параметризации вычисляются аналогично.

Теорема доказана

Пример 92 Провести точную интерполяцию опорного ансамбля, состоящего из трех точек A(1, 1), B(2, 2), C(1, 0).

Будем искать интерполирующую кривую p(u) в виде квадратичной параметризации:

p(u) =

a10 + a11u + a12u2

.

a20 + a21u + a22u2

Для нахождения коэффициентов параметризующих многочленов воспользуемся теоремой о точной интерполяции (см. теор. 104, стр. 218). Для первого интерполирующего многочлена:

a11

=

3

4

1

2

=

10 .

a10

 

1

0

0

1

 

1

a12

 

2

4

2

1 8

И аналогично вычисляются коэффициенты второго интерполирующего многочлена:

a21

=

3

4

1

2

=

5 .

a20

 

1

0

0

1

 

1

a22

 

2

4

2 0 6

Следовательно, интересующая нас параметризация имеет следующий вид:

6.2. Интерполяция в форме Эрмита

143

p(u) =

1 + 10u − 8u2

.

 

1 + 5u − 6u2

 

Аналогичные (хотя и более громоздкие) рассуждения позволяют доказать

аналогичную теорему для опорного ансамбля из четырех точек.

Теорема 82 (точная кубическая интерполяция) Для любого опорного ансамбля, состоящего из четырех точек A(xA, yA), B(xB , yB ), C(xC , yC ), D(xD , yD ), существует единственная точно интерполирующая его кривая, являющаяся кубической параметризацией вида:

a10 + a11u + a12u2 + a13u3

,

p(u) = a20 + a21u + a22u2 + a23u3

причем коэффициенты параметризующих многочленов вычисляются однозначно, исходя из координат точек опроного ансамбля:

a11

 

= 5.5

9

 

4.5

1

xB

,

 

a10

 

 

 

1

0

 

0

0

 

xA

 

a12

 

 

 

4.5

13.5

 

13.5

4.5

xC

 

 

13

 

 

 

9

22.5

 

18

4.5

 

D

 

 

a

 

 

 

x

 

 

 

 

 

 

 

a21

 

= 5.5

9

 

4.5

1

yB .

 

a20

 

 

 

1

0

 

0

0

 

yA

 

a22

 

 

 

4.5

13.5

 

13.5

4.5

yC

 

 

23

 

 

 

9

22.5

 

18

4.5

 

D

 

 

a

 

 

 

y

 

 

 

 

 

 

 

Матрица, фигурирующая в вычислениях называется матрицей точной кубической интерполяции.

6.2Интерполяция в форме Эрмита

 

 

y

 

 

При увеличении точек, участвующих в интерполя-

 

 

v

 

 

ции, алгоритмы точной интерполяции становятся

 

 

 

 

 

неэффиктивными. Действительно, при этом воз-

 

 

B

 

 

растает степень интерполирующих многочленов и,

 

 

 

 

следовательно, вычислительная сложноть.

 

A

 

 

 

 

 

 

 

Выходом из этой, тупиковой, на первый взгляд,

 

 

 

 

 

0

 

x

w

ситуации состоит в разбиении опорного ансамбля,

 

 

 

 

 

 

 

 

 

содержащего большое число точек, на отдельные

Рис. 6.2: Интерполя-

группы: пары, тройки и т д.

 

ция в форме Эрмита

 

 

При этом последняя точка предыдущей группы

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

Оказывается, что если на точки ансамбля наложить дополнительные условия (указать еще направление прохождения кривой через каждую точку ансамбля), то задача может быть решена при помощи интерполирущих многочленов степени не выше третьей, и это позволяет сделать алгороитм Эрмита.

144

Глава 6. Интерполяция кривых

Алгоритм Эрмита интерполяции плоских кривых служит теоретическим обоснованием более распространенного на практике алгоритма Безье. Мы уделим эрмитовой интерполяции гораздо большее внимание, нежели кривым Безье именно по этой причине — Безье лишь приложил технику Эр-

мита к прикладным вопросам.

Определение 63 (эрмитова интерполирующая кривая) Пусть на плоскости π фиксированы две точки A(xA, yA) и B(xB , yB ). Интерполирующей кривой в форме Эрмита для опорного ансамбля, состоящего из этих точек, называется кривая, стартующая в точке A в направлении данного вектора v = (xv , yv ) и финиширующая в точке B в направлении еще одного данного вектора w = (xw , yw ).

Итак, эримитова интерполяция харатеризуется четырьмя данными объектами: двумя точками опорного ансамбля и двумя векторами, указывающими на направления старта и финиша (см. рис. 6.2, стр. 143). Наша ближайшая цель — научиться аналитически описывать такие кривые в виде полиномиальных параметризаций.

Теорема 83 (интерполяция в форме Эрмита) Пусть кривая p(u) стартует в точке A(xA, xB ) в направлении вектора v = (xv , yv ) и финиширует в точке B(xB , yB ) в направлении вектора w = (xw , yw ). Тогда существует единственная кубическая параметризация этой кривой

a10 + a11u + a12u2 + a13u3

,

p(u) = a20 + a21u + a22u2 + a23u3

причем коэффициенты параметризующих многочленов вычисляются по следующим формулам:

a11

 

=

0

 

0

1

0

xB

 

,

 

a10

 

 

1

 

0

0

0

 

xA

 

a12

 

 

2

 

2

1

1

xv

 

 

 

13

 

 

3

 

3

2

1

 

w

 

 

 

a

 

 

 

x

 

 

 

 

 

 

 

 

 

a21

 

=

0

 

0

1

0

yB .

 

a20

 

 

1

 

0

0

0

 

yA

 

 

a22

 

 

2

 

2

1

1

yv

 

 

 

23

 

 

3

 

3

2

1

 

w

 

 

 

a

 

 

 

y

 

 

 

 

 

 

 

 

 

Матрица, фигурирующая в вычислениях, называется матрицей Эрмита.

Доказательство Доказательство этой теоремы во многом аналогично доказательству теоремы о точной квадратичной интерполяции (см. теор. 104, ср. 218)

Мы будем предполагать, что интересующая нас параметризация является равномерной на отрезке [0, 1]. Это означает, что

p(0) = A , p(1) = B .

Придавая переменной u значение 0, получим следующее векторное равен-

6.2. Интерполяция в форме Эрмита

 

 

 

 

145

ство:

 

 

 

 

 

 

 

 

a10 + a11

0 + a12

02 + a13

03

 

xA

,

 

a20

+ a21

·· 0 + a22 ··

02 + a23 ··

03

= yA

откуда

a20

=

yA .

 

 

 

 

 

 

a10

 

xA

 

 

 

 

 

 

Далее, придавая переменной u значение 1, получим еще одно векторное равенство:

a10 + a11

1 + a12

12 + a13

··

13

 

xB

,

 

a20

+ a21

·· 1 + a22

·· 12 + a23

13

= yB

откуда

a20

+ a21

+ a22

+ a23

= yB

.

 

 

a10

+ a11

+ a12

+ a13

 

 

xB

 

 

 

Тем самым, на коэффициенты параметризующих многочленов мы наложили два условия: условия прохождения кривой через точки опорного ансамбля. Имеются еще два условия: условия направлений старта и финиша. Рассмотрим эти условия с аналитической точки зрения. Они означают, что нам даны касательные векторы к кривой: в точке A — это вектор v, а в точке B — вектор w. Воспользуемся теоремой о геометрическом смысле производной функции, заданной параметрически (см. теор. 78, стр. 135). Согласно этой теореме, имеем:

p (0) = v , p (1) = w .

Вычислим производную функции p(u) (это делается элементарно, так как ее координатными функциями служат многочлены):

p (u) = a11 + 2a12u + 3a13u2 .

a21 + 2a22u + 3a23u2

Теперь мы можем получить еще два векторных равенства. Придавая переменной u значение 0, получим:

a11 + 2a12

··

0 + 3a13

··

02

 

xv

,

 

a11

 

xv

.

a21 + 2a22

0 + 3a23

02

= yv

откуда

a21

= yv

Наконец, придавая переменной u значение 1, получим еще одно векторное равенство:

a11 + 2a12

1 + 3a13

··

12

xw

,

 

a21

+ 2a22

·· 1 + 3a23

12

= yw

откуда

a21

+ 2a22

+ 3a23

 

= yw .

 

 

a11

+ 2a12

+ 3a13

 

 

 

xw

 

 

Рассмотрим равенства первых координат в полученных четырех векторных равенствах. Они образуют линейную систему относительно переменных a10, a11, a12, a14, состоящую из четырех уравнений:

a10

+ a11 + a12

+ a13

= xB ,

a10

a11

 

= xA ,

 

 

= xv ,

 

 

 

 

 

 

 

 

 

a11 + 2a12 + 3a13 = xw .

 

 

 

 

146 Глава 6. Интерполяция кривых

Воспользуемся для ее решения методом матричного обращения, для чего преобразуем ее предварительно к матричному виду:

1 1

1

1

a11

=

xB

.

 

1

0

0

0

 

a10

 

 

xA

 

0 1

2

3

a12

 

xv

 

 

0

1

0

0

 

13

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

Отсюда неизвестные a10, a11, a12 и a13 выражаются в виде вектора-столбца:

 

a10

 

 

 

1

0

0

0

 

1

 

xA

.

a11

=

1

1

1

1

 

xB

a12

 

 

 

0

1

2

3

 

 

xv

 

 

14

 

 

 

0

1

0

0

 

 

 

w

 

 

a

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

Остается вычислить обратную матрицу. Для ее нахождения можно воспользоваться, например, методом Гаусса (выкладки мы опускаем, в виду их тривиальности). Тем самым, получается формула для вычисления коэффициентов первого многочлена параметризации интерполирующей кривой в форме Эрмита:

a11

 

=

0

 

0

1

0

xB

.

 

a10

 

 

1

 

0

0

0

 

xA

a12

 

 

2

 

2

1

1

xv

 

 

13

 

 

3

 

3

2

1

 

w

 

 

a

 

 

 

x

 

 

 

 

 

 

 

Коэффициенты второго многочлена параметризации вычисляются аналогично.

Теорема доказана

Пример 93 Пусть кривая p(u) проходит через точки A(1, 2) и B(2, 1) в направлении векторов v = (1, 1) и w = (1, −1). Требуется описать кривую p(u) параметрически.

Задача решается при помощи только что доказанной теоремы об эрмитовой интерполяции (см. теор. 83, стр. 144). Будем искать параметризацию в следующем виде:

p(u) =

a10 + a11u + a12u2 + a13u3

,

a20 + a21u + a22u2 + a23u3

где коэффициенты координатных полиномов вычисляются матричным умножением:

a11

=

0

 

 

0

1

0

 

 

2 =

 

1

 

a10

 

1

 

 

0

0

0

 

 

 

1

 

 

 

1

 

a13

2

2

1

1

1

 

2

 

a12

 

3

3

2

1

 

1

 

 

2

 

— для первого координатного

полинома, и аналогично,

для второго:

a21

=

0

 

0

1

0

 

1 =

1 .

 

a20

 

1

 

0

0

0

 

 

2

 

2

 

a23

2

 

2

1

1

 

1

2

 

a22

 

 

3

 

3

2

1

 

 

1

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом, интересующая нас параметризация найдена:

p(u) =

1 + u + 2u2 2u3 .

 

2 + u − 4u2 + 2u3

6.2. Интерполяция в форме Эрмита

 

 

147

y

v

y

 

y

 

 

 

B

 

B

 

B

C

 

C

 

C

 

 

 

A

 

A

 

A

 

 

u

u

 

u = v

 

 

 

 

0

 

 

0

 

x

0

x

x

 

 

 

v

 

 

(a) Сопряжение не являет-

(b) Сопряжение

является

(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) =

a10 + a11u + a12u2 + a13u3

,

a20 + a21u + a22u2 + a23u3

где коэффициенты координатных полиномов вычисляются матричным умножением:

a11

=

0

 

0

1

0

3

= 0

 

a10

 

1

 

0

0

0

 

1

 

 

1

 

a13

2

 

2

1

1

0

0

 

a12

 

 

3

 

3

2

1

 

0

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

148

Глава 6. Интерполяция кривых

— для первого координатного полинома и, аналогично, для второго:

a21

=

 

0

 

0

1

0

 

 

1

=

1 .

 

a20

 

1

 

0

0

0

 

 

1

 

1

 

a23

2

 

2

1

1

 

1

0

 

a22

 

 

3

 

3

2

1

 

 

1

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом, интересующая нас параметризация найдена:

p(u) =

1 + 6u2 4u3

.

 

1 + u − u2

 

Теперь — параметризуем кривую на втором сегменте за счет функции q(u). Будем искать эрмитову интерполяционную кривую q(u) в виде кубической параметризации:

q(u) =

a10 + a11u + a12u2 + a13u3

,

a20 + a21u + a22u2 + a23u3

где коэффициенты координатных полиномов вычисляются матричным умножением:

a11

=

0

 

0

1

0

5

=

 

0

 

a10

 

1

 

0

0

0

 

3

 

 

 

3

 

a13

2

 

2

1

1

1

 

3

 

a12

 

 

3

 

3

2

1

 

0

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

— для первого координатного полинома и, аналогично, для второго:

a21

=

 

0

 

0

1

0

 

1

= 1 .

 

a20

 

1

 

0

0

0

 

1

 

 

1

 

a23

2

 

2

1

1

0

 

1

 

a22

 

 

3

 

3

2

1

 

1

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом, интересующая нас параметризация найдена:

q(u) =

3 + 5u2 3u3 .

 

1 − u + 2u2 − u3

Итак, окончательно кривая параметризуется на интервале [0, 1] двумя эрмитовыми интерполяциями p(u) и q(u):

p(u) =

1 + 6u2 4u3

, q(u) =

 

3 + 5u2 3u3 .

 

1 + u − u2

 

1 − u + 2u2 − u3

6.2.1Кривые Безье

Определение 65 (кривые Безье) Рассмотрим ансамбль из четырех опорных точек A, B, C, D. Зададимся условием, что стартовая и финишная точки формируемой кривой должны совпадать соответственно с A и D. Две другие опорные точки B и C используются не для интерполяции, а для задания направлений касания в конечных точках в виде двух векторов: в точке A это вектор 3 · AB, а в точке D — вектор 3 · CD. Кривая, удовлетворяющая перечисленным условиям называется кривой Безье.

Мы видим, что фактически кривые Безье — это одна из вариаций на тему интерполирующих кривых в форме Эрмита (разница лишь в способе задания касательных векторов). Так же, как и в случае эрмитовой интерполяции, справедлива аналогичная теорема:

6.3. Пример алгоритма интерполяции

149

Теорема 84 (интерполяция в форме Безье) Пусть кривая p(u) стартует в точке A(xA, xB ) и финиширует в точке D(xD , yD ), причем направление старта задано вектором AB = (xAB , yAB ), а направление финиша

— вектором CD = (xCD , yCD ). Тогда существует единственная кубическая параметризация этой кривой

a10 + a11u + a12u2 + a13u3

,

p(u) = a20 + a21u + a22u2 + a23u3

причем коэффициенты параметризующих многочленов вычисляются по следующим формулам:

a11

 

= 3

3

 

0

0

xD

,

 

a10

 

 

 

1

0

 

0

0

 

xA

 

a12

 

 

 

1

3

 

3

1

xAB

 

 

13

 

 

 

3

6

 

3

0

 

CD

 

 

a

 

 

 

x

 

 

 

 

 

 

 

a21

 

= 3

3

 

0

0

yD

.

 

a20

 

 

 

1

0

 

0

0

 

yA

 

a22

 

 

 

1

3

 

3

1

yAB

 

 

23

 

 

 

3

6

 

3

0

 

CD

 

 

a

 

 

 

y

 

 

 

 

 

 

 

Матрица, фигурирующая в вычислениях, называется матрицей Безье.

6.3Пример алгоритма интерполяции

Постановка задачи

Точка M стартует в пункте A(1, 3) в направлении вектора a(1, 1) со скоростью va = 5, проходит через точку B(1, 4) в направлении вектора b = (0, −1) со скоростью vb = 5 и финиширует в точке C(3, 2) в направлении вектора c = (1, 0) со скоростью vc = 3.

Тебуется изобразить траекторию точки M .

6.3.1Геометрическая версия алгоритма

y

aB

A b C

c

0

x

Рис. 6.4: Кривая ABC.

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

Эрмитов же алгоритм интерполяции позволит провести точное построение кривой, удовлетворяющей данным требованиям, причем такая кривая окажется единственной.

150

Глава 6. Интерполяция кривых

6.3.2Аналитическая версия алгоритма

Будем искать параметризацию формируемой кривой в виде эрмитовой интерполяции. С этой точки зрения кривая состоит из двух сегментов: AB и BC, причем гладкость их сопряжения является параметрической (см. опр. 89, стр. 221).

Для решения задачи нам необходимо знать векторы, касательные к сегментам кривой. Вычислим их. В точках A, B и C это соответственно:

va

· a =

 

 

5

 

· (1, 1) = (3. 536, 3. 536) ,

a

 

 

 

 

(

1)2 + 12

|vb|

·

b =

5

 

·

 

|vc|

 

0 3+ (1)

 

 

b

 

 

 

 

 

 

(0,

 

1) = (0, 5) ,

 

 

 

 

2

2

 

 

 

 

 

|c| · c = 12 + 02 · (1, 0) = (3, 0) .

Теперь мы можем описать сегменты кривых как две равномерные на отрезке [0, 1] кубические параметризации p(u) и q(u). На сегменте AB это функция p(u):

a10 + a11u + a12u2 + a13u3

p(u) = a20 + a21u + a22u2 + a23u3 ,

где коэффициенты координатных полиномов вычисляются матричным умножением:

a11

 

=

0

 

0

1

0

 

 

1

 

= 3. 536

 

 

a10

 

 

1

 

0

0

0

 

 

1

 

 

 

1

 

a12

 

 

2

 

2

1

1

 

3.

0

 

 

 

7. 536

 

 

13

 

 

3

 

3

2

1

 

 

536

 

 

13. 072

 

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

— для первого координатного полинома и, аналогично, для второго:

a21

 

=

0

 

0

1

0

 

 

4

 

=

3. 536

.

 

a20

 

 

1

 

0

0

0

 

 

3

 

 

3

 

a22

 

 

2

 

2

1

1

 

 

5

 

 

3. 464

 

 

23

 

 

3

 

3

2

1

 

3. 536

 

 

0. 929

 

 

a

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом, интересующая нас параметризация найдена:

p(u) =

1 3. 536 · u + 13. 072 · u2 7. 536 · u3

.

 

3 + 3. 536 · u − 0. 928 · u2 3. 464 · u3

 

Аналогично поступаем на сегменте BC, формируя параметризацию q(u):

b10 + b11u + b12u2 + b13u3

,

q(u) = b20 + b21u + b22u2 + b23u3

где коэффициенты координатных полиномов вычисляются матричным умножением:

b11

=

 

0

 

0

1

0

3

=

0

 

b10

 

 

1

 

0

0

0

 

1

 

 

1

 

b12

 

 

2

 

2

1

1

 

3

 

 

1

 

 

13

 

 

3

 

3

2

1

 

0

 

 

3

 

 

b