B样条曲线 及 B样条曲面

B样条曲线

在保留Bézie优点的同时,克服了他的弱点:采用样条——分段连续多项式

例如,现在有n+1个点,在每两点之间构造一条多项式,则有n个小区间。每个小区间构造一条三次多项式,变成了n段的三次多项式拼接在一起,段与段之间要C²连续,这就是三次样条

定义

  P ( t ) = ∑ i = 0 n P i N i , k ( t ) P(t)=\sum_{i=0}^{n}P_{i}N_{i,k}(t) P(t)=∑i=0n​Pi​Ni,k​(t)

其中,Pi是控制点, N i , k ( t ) N_{i,k}(t) Ni,k​(t)是调和函数,被称为k阶(k-1次)B样条基函数
 B样条基函数是一个称为节点矢量的非递减的参数t的序列所决定的k阶分段多项式,也即为k阶(k-1次)多项式样条。

类型的划分

曲线按其端点是否重合,分为闭曲线和开曲线

B样条曲线按其节点矢量中节点的分布情况,可划分为四种类型:

  1. 均匀B样条曲线
    节点矢量中节点为沿参数轴均匀或等距分布,所有节点区间长度为常数。这样的节点矢量定义了均匀的B样条基。

  2. 准均匀B样条曲线
    与均匀B样条曲线的差别在于两端节点具有重复度k,这样的节点矢量定义了准均匀的B样条基。均匀B样条曲线没有保留Bézier曲线端点的几何性质,即样条曲线的首末端点不再是控制多边形的首末端点。采用准均匀的B样条曲线解决了这个问题

  3. 分段Bézier曲线
    节点矢量中两端节点具有重复度k,所有内节点重复度为k-1,这样的节点矢量定义了分段的Bernstein基。
    B样条曲线用分段Bézier曲线表示后,各曲线段就具有了相对的独立性,移动曲线段内的一个控制顶点只影响该曲线段的形状,对其它曲线段的形状没有影响。并且Bézier曲线一整套简单有效的算法都可以原封不动地采用。缺点是增加了定义曲线的数据,控制顶点数及节点数。

  4. 非均匀B样条曲线
    任意分布的节点矢量,只要在数学上成立(节点序列非递减,两端节点重复度≤k,内节点重复度≤k-1)都可选取。这样的节点矢量定义了非均匀B样条基

B样条曲线的性质

  1. 局部性:k阶B样条曲线上参数为 t ∈ [ t i , t i + 1 ] t\in[t_{i},t_{i+1}] t∈[ti​,ti+1​] 的一点至多与k个控制顶点 P j ( j = i − k + 1 , . . . , i ) P_{j}(j=i-k+1,...,i) Pj​(j=i−k+1,...,i) 有关,与其他控制顶点无关;移动该曲线的第i个控制顶点Pi至多影响到定义在区间 ( t i , t i + k ) (t_{i},t_{i+k}) (ti​,ti+k​) 上那部分曲线的形状,对曲线的其余部分不发生影响。
  2. 连续性:P(t)在r重节点处的连续阶不低于 k − 1 − r k-1-r k−1−r,整条曲线上的连续性不低于 k − 1 − r m a x k-1-r_{max} k−1−rmax​
  3. 凸包性:P(t)在区间 ( t i , t i + 1 ) , k − 1 ≤ i ≤ n (t_{i},t_{i+1}), k-1≤i≤n (ti​,ti+1​),k−1≤i≤n 上的部分位于k个点 P i − k + 1 , . . . , P i P_{i-k+1},...,P_{i} Pi−k+1​,...,Pi​ 的凸包 C i C_{i} Ci​内,整条曲线则位于各凸包 C i C_{i} Ci​的并集之内。这个性质被称为强凸包性。
  4. 分段参数多项式:P(t)在每一区间上都是次数不高于k-1的参数t的多项式
  5. 导数公式
    P ′ ( t ) = ( ∑ i = 0 n P i N i , k ( t ) ) ′ = ∑ i = 0 n P i N i , k ′ ( t ) P'(t)=\left ( \sum_{i=0}^{n}P_{i}N_{i,k}(t) \right )'=\sum_{i=0}^{n}P_{i}N_{i,k}'(t) P′(t)=(∑i=0n​Pi​Ni,k​(t))′=∑i=0n​Pi​Ni,k′​(t)

    = ( k − 1 ) ∑ i = 1 n ( P i − P i − 1 t i + k − 1 − t i ) N i , k − 1 ( t ) , t ∈ [ t k − 1 , t n + 1 ] =(k-1)\sum_{i=1}^{n}\left ( \frac{P_{i}-P_{i-1}}{t_{i+k-1}-t_{i}} \right )N_{i,k-1}(t), t \in[t_{k-1},t_{n+1}] =(k−1)∑i=1n​(ti+k−1​−ti​Pi​−Pi−1​​)Ni,k−1​(t),t∈[tk−1​,tn+1​]

  6. 变差缩减性:设平面内n+1个控制顶点构成B样条曲线P(t)的特征多边形。在该平面内的任意一条直线与P(t)的交点个数不多于该直线和特征多边形的交点个数
  7. 几何不变性:B样条曲线的形状和位置与坐标系的选择无关
  8. 仿射不变性:在仿射变化下,表达式具有形式不变性
    A [ P ( t ) ] = ∑ i = 0 n A [ p i ] N i , k ( t ) A[P(t)]=\sum_{i=0}^{n}A[p_{i}]N_{i,k}(t) A[P(t)]=∑i=0n​A[pi​]Ni,k​(t), t ∈ [ t k − 1 , t n + 1 ] t\in[t_{k-1},t_{n+1}] t∈[tk−1​,tn+1​]
  9. 直线保持性:控制多边形退化为一条直线时,曲线也退化为一条直线
  10. 造型的灵活性:用B样条曲线可以构造直线段、尖点、切线等特殊情况

3.4.7 B样条曲面

给定参数轴u和v的节点矢量 U = [ u 0 , u 1 , . . . , u m + p ] U=[u_{0},u_{1},...,u_{m+p}] U=[u0​,u1​,...,um+p​] 和 V = [ v 0 , v 1 , . . . , v n + q ] V=[v_{0}, v_{1}, ..., v_{n+q}] V=[v0​,v1​,...,vn+q​], p×q阶B样条曲面定义如下:

  P ( u , v ) = ∑ i = 0 m ∑ j = 0 n P i j N i , p ( u ) N j , q ( v ) P(u,v)=\sum_{i=0}^{m}\sum_{j=0}^{n}P_{ij}N_{i,p}(u)N_{j,q}(v) P(u,v)=∑i=0m​∑j=0n​Pij​Ni,p​(u)Nj,q​(v)

其中, P i , j P_{i,j} Pi,j​构成一张控制网络,称为B样条曲线的特征网络

N i , p ( u ) N_{i,p}(u) Ni,p​(u) 和 N j , q ( v ) N_{j,q}(v) Nj,q​(v) 是B样条基,分别用节点矢量U和V按照deBoor-Cox递推公式决定

(0)

相关推荐