10.8.1. Рекурсивно определенные В-сплайны
Подход, который выбран для формирования B-сплайнов, состоит в том, чтобы определять сплайн в терминах множества базисных функций (или, что то же самое, функций смешивания), каждая из которых отлична от нуля только на интервале в несколько узлов. Следовательно, можно записать функцию р(и) в виде
p(")=Eß.»p,
где каждая функция B,J^u) есть полином степени d на интервале в несколько узлов и равна нулю за пределами интервала (i/j min, щ max). Само название B-сплайн происходит от basis spline (базисный сплайн), т.е. отражает тот факт, что множество функций {B,j(u)} образуют базис для данной последовательности узлов и заданной степени полинома. Существует много способов определения базисных функций, но особое место принадлежит одному из них, который получил название метода рекурсивных функций Кокса-де Бура (Cox-deBoor recursion)*3:
\\, если <и£иш,
[О - в противном случае; Во многих работах эта последовательность именуется вектором узлов flcnot vector/ но использование в данной книге такой терминологии может внести определенную путаницу, поскольку ранее мы договорились называть вектором направленный отрезок.
13Эта формула также известна как рекурсивная формула де Кастельо fdeCasteljau recursion/
10.8. Обобщенные В-сплайны
Каждая функция из первого множества, В^, постоянна на одном интервале и равна нулю за его пределами; каждая функция из второго множества, Вк], линейна на двух интервалах и равна нулю за их пределами; каждая функция из третьего множества, Вк2, имеет вид квадратичной кривой на трех интервалах и равна нулю за их пределами и т.д. (рис. 10.27). В общем случае функция из множества Bkd имеет отличное от нуля значение на d+\ интервалах между щ и uk+tl+\ и представляет собой полином степени d на каждом из этих интервалов, причем в узлах обеспечивается параметрическая непрерывность класса С7-1. Сплайн-кривая, образованная как взвешенная сумма таких базисных функций, будет лежать внутри выпуклой многоугольной оболочки, поскольку для базисных функций выполняется условие