您好,欢迎访问三七文档
Nurbs曲线详解NURBS(NonUniformRationalB-spline)曲线通常称为非均匀有理B样条曲线,其数学定义如下:基函数由递推公式定义:非均匀:指节点向量的值与间距可以为任意值。这样我们可以在不同区间上得到不同的混合函数形状,为自由控制曲线形状提供了更大自由。均匀与非均匀的主要区别在于节点向量的值。如果适当设定节点向量,可以生成一种开放均匀样条,它是均匀与非均匀的交叉部分。开放样条在两端的节点值会重复d次,其节点间距是均匀的。例如:{0,0,1,2,3,3},(d=2,n=3){0,0,0,1,2,2,2},(d=4,n=4)开放均匀B样条与贝泽尔样条性质非常类似,如果d=n+1(即多项式次数为n),那么开放B样条就变成了贝泽尔样条,所有节点值为0或1。如四个控制点的三次开放B样条,节点向量为:{0,0,0,0,1,1,1}。有理B样条:有理函数是两个多项式之比,有理样条(rationalspline)是两个样条函数之比,有理B样条用向量描述。URBS曲线由以下三个参数定义:(1)控制点:确定曲线的位置,通常不在曲线上,形成控制多边形。(见图1,图中)图1控制点移动对曲线的影响(2)权因子:确定控制点的权值,它相当于控制点的“引力”,其值越大曲线就越接近控制点(见图2,Bi为控制点)。图2曲线随权因子变化(3)节点矢量K:NURBS曲线随着参数K的变化而变化,与控制顶点相对应的参数化点K称为节点,节点的集合Ki:[K0,K1…,Kn…,Kn+m+1]称为节点矢量。节点:在曲线上任意一点有多于一个控制点产生影响(除了bezier的端点),节点就象一种边界,在这个边界上一个控制点失去影响作用,另一个控制点取得影响。2、NURBS曲线怎样通过首末节点多重节点序列使得样条曲线更靠近于重复节点位置。如果末端节点重复d+1次,则d阶B-样条必须插值最后一个控制点。因此,解决样条曲线不能横跨整个控制顶点序列的一个方法是,重复首尾两个节点,这样得到的样条曲线将插值首尾两个控制点。对于非周期的样条,节点矢量为即节点矢量两端各有m+1个相同的节点,以便曲线通过控制多边形首、末端点,并与首、末两边相切。(参考系统编程篇§2.7程序示例)3、NURBS曲线轨迹的矩阵计算法及矩阵表示因NURBS样条函数的节点参数沿参数轴的分布是不等距的,不同节点矢量形成的B样条基函数各不相同,需要单独计算,且算法中又增加了权因子,所以曲线轨迹点的计算较为复杂、费时,为了提高NURBS曲线插补的实时性,在实时插补前需进行必要的预处理,其主要任务是确定NURBS曲线轨迹计算公式的有关系数,以简化实时插补的计算量。若曲线采用三次NURBS形式表示(三次与K次计算方法相同,表达式不同),即K=3,,则第i段曲线可以写成下列矩阵形式:整理可得:由于控制点di及权因子Wi均已知,而Mi仅与节点向量有关,也是确定的,Ci与Mi、Wi、di有关,即也是确定的,故式中各项系数均已知,且与插补点的参数无关,可在插补前一次性求出,因式中i的取值为3到n,所以对整条NURBS曲线,可计算出的系数共有n-2组,在插补中根据插补点所在的位置动态选用相应的系数。对于曲线上坐标X、Y、Z分别有:
本文标题:Nurbs曲线详解
链接地址:https://www.777doc.com/doc-8281191 .html