为了保留bezier方法的优点,B样条曲线的方程定义为:
B样条思想
与bezier曲线的最显著的区别:

  • B样条的基函数为k阶,也就是说多项式的次数与控制多边形顶点数没有关系
  • 参数的取值是 u(k-1) 到 u(n+1)

k是刻画次数的,其中k可以2到控制点个数n+1之间的任意整数
(对bezier曲线来说阶数和次数一样,但对于B样条,阶数是次数+1)

B样条的基函数实际上就是一个多项式,得到这个基函数有多种定义方法,常用的是de Boor-Cox递推公式

de Boor-Cox

原理:只要是k阶的B样条基函数,构造一种递推的公式,由0次构造1次,1次构造2次,2次构造3次,,依次类推

即:
B样条思想
(为避免出现分子分母都为0的情况,约定 0/0 = 0 )

B样条思想
1阶的B样条基函数是0次多项式(一个常数)
2阶B样条是由两个1阶的基函数线性组合而成的:
B样条思想
一次B样条可以由两个0次B样条Bi,1(u)B_{i,1}(u)Bi+1,1(u)B_{i+1,1}(u)得到,是他们的凸线性组合,根据推导可知在不同的支撑区间内的取值是不同的:
B样条思想
3阶B样条是由两个2阶的基函数线性组合而成的:
形状像抛物线,是个二次的多项式

每个pi都有一个Bi,k(u)B_{i,k}(u)与之匹配,存在n+1个Bi,k(u)B_{i,k}(u),曲线的次数是k-1次,这条曲线的定义区间是一组向量:

因为对于1阶0次基函数,涉及一个区间两个节点
所以对于由两个1阶基函数组成的2阶基函数就涉及两个区间三个节点,3阶基函数涉及三个区间四个节点,Bi,kB_{i,k}涉及K个区间k+1个节点
因为最多有n+1个控制点,所以涉及的对应向量有:
B样条思想
阶数+顶点 = 节点向量的个数。同时,区间要合法,区间里必须要有足够的基函数和顶点配对。可以根据配对的情况来寻找有意义的区间(B样条基函数严重依赖于节点向量的分布)

B样条曲线类型的划分

曲线按照其首尾端点是否重合,分为闭曲线和开曲线,闭曲线又分为周期和非周期两种,周期闭曲线与非周期闭曲线的区别是:前者在首末端点是C2连续的,而后者一般C2连续。非周期闭合曲线可以看成是开曲线的特例(按开曲线处理)

B样条曲线按其节点矢量中节点的分布情况可以划分四种
1) 均匀B样条曲线
节点矢量中节点为沿参数轴均匀或等距分布
2)准均匀B样条曲线
与均匀B样条曲线的差别在于两端结点具有重复度k,这样的节点矢量定义了准均匀B样条基
3)分段bezier曲线
B样条曲线用分段bezier曲线表示后,各曲线段拥有了想怼的独立性,移动曲线段内的一个控制顶点指挥影响该曲线段的形状而对其他曲线段的形状没有改变,并且bezier曲线的算法可以被使用
4)非均匀B样条曲线
只要节点矢量在数学上成立,可以任意分布

相关文章:

  • 2021-11-27
  • 2021-07-24
  • 2022-02-08
  • 2022-02-08
  • 2021-11-14
  • 2021-07-17
  • 2022-02-08
  • 2021-04-14
猜你喜欢
  • 2022-02-08
  • 2022-02-08
  • 2021-11-17
  • 2021-07-01
  • 2021-08-08
  • 2021-12-16
相关资源
相似解决方案