B样条曲线
在保留Bézie优点的同时,克服了他的弱点:采用样条——分段连续多项式
例如,现在有n+1个点,在每两点之间构造一条多项式,则有n个小区间。每个小区间构造一条三次多项式,变成了n段的三次多项式拼接在一起,段与段之间要C²连续,这就是三次样条
定义
其中,Pi是控制点,是调和函数,被称为k阶(k-1次)B样条基函数
B样条基函数是一个称为节点矢量的非递减的参数t的序列所决定的k阶分段多项式,也即为k阶(k-1次)多项式样条。
类型的划分
曲线按其端点是否重合,分为闭曲线和开曲线
B样条曲线按其节点矢量中节点的分布情况,可划分为四种类型:
-
均匀B样条曲线
节点矢量中节点为沿参数轴均匀或等距分布,所有节点区间长度为常数。这样的节点矢量定义了均匀的B样条基。 -
准均匀B样条曲线
与均匀B样条曲线的差别在于两端节点具有重复度k,这样的节点矢量定义了准均匀的B样条基。均匀B样条曲线没有保留Bézier曲线端点的几何性质,即样条曲线的首末端点不再是控制多边形的首末端点。采用准均匀的B样条曲线解决了这个问题 -
分段Bézier曲线
节点矢量中两端节点具有重复度k,所有内节点重复度为k-1,这样的节点矢量定义了分段的Bernstein基。
B样条曲线用分段Bézier曲线表示后,各曲线段就具有了相对的独立性,移动曲线段内的一个控制顶点只影响该曲线段的形状,对其它曲线段的形状没有影响。并且Bézier曲线一整套简单有效的算法都可以原封不动地采用。缺点是增加了定义曲线的数据,控制顶点数及节点数。 -
非均匀B样条曲线
任意分布的节点矢量,只要在数学上成立(节点序列非递减,两端节点重复度≤k,内节点重复度≤k-1)都可选取。这样的节点矢量定义了非均匀B样条基
B样条曲线的性质
- 局部性:k阶B样条曲线上参数为 的一点至多与k个控制顶点 有关,与其他控制顶点无关;移动该曲线的第i个控制顶点Pi至多影响到定义在区间 上那部分曲线的形状,对曲线的其余部分不发生影响。
- 连续性:P(t)在r重节点处的连续阶不低于,整条曲线上的连续性不低于
- 凸包性:P(t)在区间 上的部分位于k个点 的凸包内,整条曲线则位于各凸包的并集之内。这个性质被称为强凸包性。
- 分段参数多项式:P(t)在每一区间上都是次数不高于k-1的参数t的多项式
- 导数公式
- 变差缩减性:设平面内n+1个控制顶点构成B样条曲线P(t)的特征多边形。在该平面内的任意一条直线与P(t)的交点个数不多于该直线和特征多边形的交点个数
- 几何不变性:B样条曲线的形状和位置与坐标系的选择无关
- 仿射不变性:在仿射变化下,表达式具有形式不变性
, - 直线保持性:控制多边形退化为一条直线时,曲线也退化为一条直线
- 造型的灵活性:用B样条曲线可以构造直线段、尖点、切线等特殊情况
3.4.7 B样条曲面
给定参数轴u和v的节点矢量 和 , p×q阶B样条曲面定义如下:
其中, 构成一张控制网络,称为B样条曲线的特征网络
和 是B样条基,分别用节点矢量U和V按照deBoor-Cox递推公式决定