logo
Компьютерная графика / МАШ_ГРАФИКА

§3. Интерполяция с помощью в-сплайнов

При интерполировании алгебраическими сплайнами мо-делируемая кривая является кусочной. Она состоит из от-дельных алгебраических многочленов, гладко соединя-ющихся между собой в промежуточных точках, и её нельзя представить в едином виде линейной комбинацией неко-торых базисных функций, как в случае моделирования едиными алгебраическими полиномами. Использование специальных базисных сплайн-функций (В-сплайнов) по-зволяет использовать единое представление и в случае интерполяции кривых сплайнами.

Допустим, задан некоторый набор узловых значений параметра кривой {ti}. j-тым сегментом назовём отрезок [tj, tj+1] . В – сплайн степени m , начинающийся на j-том сег-менте, обозначается как Nj,m (t) и занимает не только его, но и последующие до сегмента с номером ( j+ m+1 ) вклю-чительно.

В рекуррентной по степени m форме численное определе-ние В-сплайна имеет вид:

m=0 : N j,0 (t) = (3.14).

m1 :

Каждый jтый сегмент при заданной степени m пере-крывается ( m+1) В-сплайном -Nj,m(t), N(j-1),m(t),…, N(j-m),m (t). Таким образом, при наличии узлов t0, t1,…, tn и, соответ-ственно, сегментов с 0-го по (n-1)-й для полного задания В-сплайнов на них необходимо ввести дополнительно:

а) узлы t-m,…, t-1 и, соответственно, сегменты с номерами (–m),…,(-1) (эти значения не должны попадать внутрь интервала [t0, tn1] ) и

88

б) сплайны N-m,m (t), …, N-1,m (t), начинающиеся на этих сегментах.

Моделируемая В-сплайн функция в общем случае может быть представлена как :

Если рассмотреть конкретный интервал [tk, tk+1] , содер-жащий t , и исключить из суммы (3.15 а) все нулевые слагаемые, то она принимает вид:

Отсюда вытекает важное свойство В-сплайнов: значение сплайн-функции P(t) степени m в фиксированной точке зависит только от m коэффициентов.

Рекуррентное соотношение (3.14) позволяет непосред-ственно вычислять в текущей точке t значения всех В-сплайнов, принимающих в ней ненулевые значения. Допус-тим, t [tj, tj+1] и степень сплайна равна m. Рассмотрим последовательно вычисление сплайнов степени 0,1,…, m .

Степень 0. Из всех сплайнов нулевой стeпени на интервале [tj, tj+1] не равен нулю только Nj,0 (t) . По опре-делению N j,0 (t) = 1 .

Степень 1. Не равны нулю на интервале [tj, tj+1] только N j-1,1 (t) и N j,1 (t). С учётом N j-1,0 (t)=N j+1,0 (t) = 0 получим:

89

Степень s (sm) . Для каждого значения степени s ненулевыми на интервале [tj, tj+1] являются Nj-s,s(t),Nj-s+1,s(t), …, N j,s(t). С учётом N j-s, s-1 (t) = N j+1,s-1 (t) = 0 получим:

Таким образом, нет необходимости предварительного расчёта и хранения вспомогательных величин.

После подстановки в выражение (3.15 а) узловых значе-ний параметра t , получается система линейных уравнений относительно вектора неизвестных коэффициентов Сj ( j = –m ,…,-1,0,…,n). Для формирования системы необходимо доопределить значение функции P(t) на дополнительных узлах t-m,…, t-1 . Система уравнений может быть решена как стандартными методами, так и специальными методами, учитывающими диагональный характер получающейся матрицы.

В-сплайн поверхность может быть получена как декарто-во произведение В-сплайнов по параметрам u и v :

90

где {Рi j } - список характерных точек, расположенных в узлах прямоугольной двумерной сетки.

91