一、B样条产生的背景
Bezier曲线不足:
(1)一旦确定了特征多边形的顶点数(n+1个),也就决定了曲线的阶次(n次)。
(2)Bezier曲线或曲面的拼接比较复杂。
(3)Bezier曲线或曲面不能作局部修改。
B样条方法
采用分段连续多项式,在保留Bezier方法全部优点的同时,克服了Bezier方法的弱点。
二、B样条的递推定义和性质
B样条曲线的数学表达式为:
$P_{i}$ (i =0,1,L,n) 是控制多边形的顶点
$B_{I,K}(u) $ 称为k阶(k-1次) B样条基函数,k是刻画次数的。其中k可以是2到控制点个数n+1之间的任意整数。
B样条基函数是一个称为节点矢量的非递减的参数u的序列所决定的k阶分段多项式,这个序列称为节点向量。
2.1 B样条基函数的定义方式(de Boor-Cox递推定义)
原理:只要是k阶(k-1次)的B样条基函数,构造一种递推的公式,由0次构造1次,1次构造2次,2次构造 3次…依次类推。
并约定: $\frac{0}{0} = 0 $
该递推公式表明:若确定第i个k阶B样条 $B_{i,k}(u)$ ,需要用到 $u_{i}$ , $u_{i+1}$ ,…, $u_{i+k}$ 共k+1个节点,称区间
[ $u_{i}$ , $u_{i+k}$ ]为 $B_{i,k}(u)$ 的支承区间。
曲线方程中,n+1个控制顶点Pi(i=0,1,…,n),要用到n+1个k阶B样条 $B_{i,k}(u)$ 。它们支撑区间的并集定义了这一组B样条基的节点矢量
$B_{i,1}(u)$ 是0次多项式
有公式推出2阶(一次)B样条 $B_{i,2}(u)$ :
三、B样条基函数定义区间及节点向量
3.1 K阶B样条对应节点向量数
$B_{i,k}$ 涉及k个区间k+1个节点
3.2 B样条函数定义区间
$u_{i}$ 是节点值,U=( $u_{0}$ , $u_{1}$ ,… $u_{n+k}$ )构成了k阶(k-1次)B样条函数的节点矢量
B样条曲线所对应的节点向量区间: $ u\in[u_{k-1},u_{n+1}] $ 。
四、B样条基函数的主要性质
4.1 局部支承性
对每一个区间(ui,ui+k),至多只有k个基函数在其上非零。
4.2 权性
4.3 连续性
$B_{i,k}(u)$ 在r重节点处的连续阶不低于 k-1-r
4.4 分段参数多项式
$B_{i,k}(u)$ 在每个长度非零的区间[ $u_{i}$ , $u_{i+1}$ ) 上都是次数不高于k-1的多项式,它在整个参数轴上是分段多项式。
五、B样条函数的主要性质
5.1 局部性
k阶B样条曲线上的一点至多与k个控制顶点有关,与其它控制顶点无关。
移动曲线的第i个控制顶点Pi,至多影响到定义在区间上那部分曲线的形状,对曲线其余部分不发生影响
5.2 变差缩减性
设平面内 n+1 个控制顶点 构成B样条曲线 P(t) 的特征多边形。在该平面内的任意一条直线与 P(t) 的 交点个数不多于该直线和特征多边形的交点个数。
5.3 几何不变性
B样条曲线的形状和位置与坐标系的选择无关
5.4 凸包性
B样条曲线落在Pi构成的凸包之中。其凸包区域小于或等于同一组控制顶点定义的Bezier曲线凸包区域。
六、B样条曲线类型的划分
6.1 均匀B样条曲线
当节点沿参数轴均匀等距分布,即 $u_{i+1}$ - $u_{i}$ = 常数 > 0时,表示均匀B样条函数。
6.2 准均匀B样条曲线
与均匀B样条曲线的差别在于两端节点具有重复度k,这样的节点矢量定义了准均匀的B样条基。
均匀:u = (0,1,2,3,4,5,6)
准均匀:u = (0,0,0,1,2,3,4,5,5,5)
6.3 分段Bezier曲线
节点矢量中两端节点具有重复度k,所有内节点重复度为k-1,这样的节点矢量定义了分段的Bernstein基。
B样条曲线用分段Bezier曲线表示后,各曲线段就具有了相对的独立性。
6.4 非均匀B样条曲线
当节点沿参数轴的分布不等距,即 $u_{i+1}$ - $u_{i}$ ≠常数时,表示非均匀B样条函数