B样条曲线与曲面

Posted by Haiden on April 16, 2019

一、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样条函数

七、B样条曲面