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

1.1 Построение сплайнов по однократным узлам

Допустим, плоская кривая у(х) задана набором значений у(xi) = уi в узлах xi (i = 0,1 ,...,n). Необходимо построить интерполяционный сплайн наименьшей степени, прохо-дящий через узлы xi : S(xi) = уi, (i = 0,1 ,...,n). Если кривая является пространственной, то наряду с функцией у(х) должна быть задана зависимость z(x). Задача интерпо-лирования по оси z решается точно также , как и по оси у.

Рассмотрим отрезок [xi,xi+1]. В его граничных точках заданы по одному геометрическому условию: у(xi) = уi , у(xi+1) = уi+1 . Поскольку узлы являются однократными, то наименьшая степень полинома Si+1(x) (i = 0,1 ,...,n-1) равна единице. Как показано в Главе 2 (2.11), интерполяцион-ный многочлен Лагранжа для Si+1(x) имеет вид:

Si+1(x)= уi (xi+1 –x)/(xi+1 -xi)+ уi+1 (x-xi) /(xi+1 -xi ). (3.1 а)

В векторной форме:

Si+1(x) = (Ф(x),Y);

Ф(x) = ( (xi+1 –x) / (xi+1 -xi), (x-xi) / (xi+1 -xi ));Y= ( уi , уi+1 ).

73

Переходя к безразмерной переменной t=(x-xi) / (xi+1 -xi ), у которой t(xi)=0; t(xi+1)=1, для функций Лагранжа и полинома Si+1(t) получим следующие выражения:

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

Интерполирование двухмерными сплайнами поверх-ностей по однократным узлам производится аналогично. Допустим, поверхность z(x,у), которая задана набором зна-чений z(xij) = zi j в узлах двухмерной сетки (xij) (i = 0,1,...,n; j=0,1,...,m). Необходимо построить интерполяци-онный сплайн S(x,y) наименьшей степени, проходящий че-рез узлы (xij) : S(xij) = zi j (i = 0,1 ,..., n; j = 0,1 ,..., m).

Рассмотрим прямоугольный участок сетки [xi,xi+1]j, yj+1]. В его граничных точках заданы по одному геомет-рическому условию: z(xij )= zij , z(xi+1 j ) =z(i+1) j , z(xi , уj+1)= zi (j+1) , z(xi+1 j+1) =z(i+1)(j+1) . Минимальные степени квадратичной формы S(i+1),(j+1)(x,y) по переменным х,у рав-ны единице. Как показано в Главе 2 (2.22), явное решение для S(i+1),(j+1)(x,y) при помощи функций Лагранжа имеет вид:

S(I+1),(j+1) (x,y) =Ф(x) ZФ(у); (3.2 а)

Ф(x)=((xi+1x) / (xi+1 -xi), (x-xi) / (xi+1 -xi ));

Ф(у)=((yj+1y) / (yj+1 -yj), (y-yj) / (yj+1 -yj));

Переходя, как и в одномерном случае, к безразмерным переменным tх= (x - xi)/(xi+1 - xi ) и tу = (у - yj)/(yj+1 - yj ) и

74

используя матрицу МЛ , решение для S(i+1),(j+1)(x,y) можно представить в виде:

Построенный двухмерный сплайн S(x,y) = { S(i+1),(j+1)(x,y), (i = 0,1 ,..., n-1; j = 0,1 ,..., m-1) } задаёт множество про-странственных четырёхугольников (в общем случае –не-плоских), заменяющих исходную поверхность z(x,у) таким образом, что они совпадают с заданными значениями в уз-лах интерполирования (xij).

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