前序文章参考Bezier曲线_迦南木的博客-CSDN博客
1.背景
Bezier曲线的不足:
1)特征多边形的顶点数(n+1)决定了曲线的阶次n
2)Bezier曲线的拼接也是比较麻烦
3)不能局部修改
1972年Gordon,Riesenfeld等人提出了B样条方法,在保留Bezier方法全部优点同时,克服了Bezier曲线的缺点
采用 --------样条(spline)----------分段连续多项式
整条曲线用一个完整的表达形式,但是内在的量是一段一段的,比如一堆的3次曲线拼过去,两条之间满足2次参数连续。
有n+1个点,每两点之间构造一条多项式,n+1个点有n个小区间,每个小区间构造一条三次多项式,变成了n段的三次多项式拼接在一起,段与段之间要两次连续,这就是三次样条。
2.B样条曲线定义
是控制多边形的顶点
差别:
1)伯恩斯坦基函数的阶数与顶点数n无关
2)参数u的取值范围不同
称为k阶(k-1次)B样条基函数,k是刻画次数的。对于Bezier曲线,阶数和次数是一样的,但是B样条,阶数是次数加1
B样条基函数是一个称为节点矢量的非递减的参数u的序列所决定的k阶分段多项式,这个序列称为节点向量。
B样条基函数
B样条基函数有多种定义方式,但是最广泛使用的是de Boor-Cox递推定义
原理是,只要是k阶(k-1次)的B样条基函数,构造一种递推的公式,由0次构造1次,1次构造2次,2次构造3次,以此类推。
并约定:
改递推公式表明:若确定第i个k阶B样条,需要用到共k+1个节点,称区间为的支撑区间
u 就是参数Bezier曲线的参数t
是1阶0次多项式
是二阶1次多项式
一次B样条可由两个0次B样条和递推得到,是他们的凸线性组合
再有两个一次B样条和递推得到二次B样条