Пример 2: Введение Узла в Существующем Простом Узле

Пусть имеем такой узловой вектор:

u0 - u4 u5 u6 u7 u8 u9 u10 u11 u12 - u16
0.125 0.25 0.375 0.5 0.625 0.75 0.875

Нам нужно ввести новый узел t = 0.5, который равняется существующему (т.e. t = u8 = 0.5). Вот кривая B-spline 4 степени и ее базисные функции до введения нового узла t.

Так как t находится на [u8,u9), то зависящие точки - это p8, p7, p6, p5 и p4. Коэффициенты вычисляем так:

a8 = (t - u8) / (u12 - u8) = (0.5 - 0.5) / (1 - 0.875) = 0
a7 = (t - u7) / (u11 - u7) = (0.5 - 0.375) / (0.875 - 0.375) = 1/4
a6 = (t - u6) / (u10 - u6) = (0.5 - 0.25) / (0.75 - 0.25) = 1/2
a5 = (t - u5) / (u9 - u5) = (0.5 - 0.125) / (0.625 - 0.125) = 3/4

Новые контр. точки - это

q8 = (1 - 0)p7 + 0p8
q7 = (1 - 1/4)p6 + (1/4)p7
q6 = (1 - 1/2)p5 + (1/2)p6
q5 = (1 - 3/4)p4 + (3/4)p5

Новая контр. точка q Пример 2: Введение Узла в Существующем Простом Узле8 равна исходой контр. точке p7. Фактически, если t равняется узлу, скажем, uk, то

ak = (t - uk) / (uk+p - uk) = 0

Следовательно, имеем

qk = (1 - 0)pk-1 + 0pk = pk-1

То есть, если новый узел t, который должен быть введен, равняется существующему простому узлу uk, то qk, последняя новая контр. точка, равняется pk-1. Следующая диаграмма показывает схему вычислений:

На рисунке в начале этого примера новые контр. точки и новая контр. ломаная показаны оранжевым цветом. Пожалуйста, заметьте, новые контр. точки - это p0, p1, p2, p3, p4, q5, q6, q7, q8 = p7, p8, p9, p10 и p11. Кривая и ее базисные функции после введения нового узла t Пример 2: Введение Узла в Существующем Простом Узле = 0.5 показана ниже.

Соотношения между значениями aj, uj и t показаны ниже:

Пример 3: Введение Узла в Существующем Множественном Узле

А что, если новый узел t вводится в монжественный узел? Пусть t вводится в узел uk множественности s. Таким образом, имеем s последовательных одинаковых узлов: uk = uk-1 = uk-2 = .... = uk-s+1 и uk-s+1, не равный uk-s. В вычислении коэффициентов ak, ...., ak-p+1, имеем следующее:

ak = (t - uk) / (uk+p - uk) = (uk - uk) / (uk+p - uk) = 0
ak-1 = (t - uk-1) / (uk+p-1 - uk-1) = (uk - uk-1) / (uk+p-1 - uk-1) = 0
..........
ak-s+1 = (t - uk-s+1) / (uk-s+1+p - uk-s+1) = (uk - uk-s Пример 2: Введение Узла в Существующем Простом Узле+1) / = 0

Отсюда, коэффициенты ak, ...., ak-p+1 все равны нулю и, следовательно, имеем

qk = (1 - ak)pk-1 + akpk = pk-1
qk-1 = (1 - ak-1)pk-2 + ak-1pk-1 = pk-2
..........
qk-s = (1 - ak-s+1) pk-s + ak-s+1pk-s = pk-s

Это показывает, что, если новый узел t вводится в существующий узел uk множественности s, то последние s новых контр. точек, qk, qk-1, ..., qk-s+1 равны исходным контр. точкам pk-1, pk-2, ..., pk-s.Если s = 1 (т.e. это простой узел), qk равно pk-1, что как раз и обсуждалось во 2 примере. Если s = 0 (т.e. t не является узлом), то все контр. точки от pk-p до pk являются зависимыми Пример 2: Введение Узла в Существующем Простом Узле [involved]. Это случай из 1 Примера. Следующая диаграмма показывает схему вычислений:


documentapbvhvl.html
documentapbvpft.html
documentapbvwqb.html
documentapbweaj.html
documentapbwlkr.html
Документ Пример 2: Введение Узла в Существующем Простом Узле