B-сплайн — сплайн-функция, имеющая наименьший носитель для заданной степени, порядка гладкости и разбиения области определения. Фундаментальная теорема устанавливает, что любая сплайн-функция для заданной степени, гладкости и области определения может быть представлена как линейная комбинация B-сплайнов той же степени и гладкости на той же области определения. Термин B-сплайн был введён И. Шёнбергом и является сокращением от словосочетания «базисный сплайн». B-сплайны могут быть вычислены с помощью алгоритма де Бора, обладающего устойчивостью.
В системах автоматизированного проектирования и компьютерной графике термин B-сплайн часто описывает сплайн-кривую, которая задана сплайн-функциями, выраженными линейными комбинациями B-сплайнов.
Определение
Когда узлы равноудалены друг от друга, говорят, что B-сплайн является однородным, в противном случае его называют неоднородным
Замечания
Когда количество узлов совпадает со степенью сплайна, B-сплайн вырождается в кривую Безье. Форма базисной функции определяется расположением узлов. Масштабирование или параллельный перенос базисного вектора не влияет на базисную функцию.
Сплайн содержится в выпуклой оболочке его опорных точек.
Базисный сплайн степени n
b i , n ( t ) {displaystyle b_{i,n}(t),;}не обращается в нуль только на промежутке [ti, ti+n+1], то есть
b i , n ( t ) = { > 0 i f t i ≤ t < t i + n + 1 0 o t h e r w i s e {displaystyle b_{i,n}(t)=left{{egin{matrix}>0&mathrm {if} quad t_{i}leq t<t_{i+n+1} &mathrm {otherwise} end{matrix}} ight.}Другими словами, изменение одной опорной точки влияет только на локальное поведение кривой, а не на глобальное, как в случае кривых Безье.
Базисная функция может быть получена из полинома Бернштейна
P-сплайн
P-сплайн является модификацией B-сплайна и отличается использованием штрафной функции. Её введение позволяет использовать B-сплайновое сглаживание с весовыми коэффициентами для подгонки кривой в сочетании с дополнительным повышением гладкости и исключением переобучения на основе штрафной функции.