NURBS曲线与曲面
来源:互联网 发布:阿里云 虚拟主机 使用 编辑:程序博客网 时间:2024/04/30 05:26
B样条方法在表示与设计自由型曲线曲面形状时显示了强大的威力,然而在表示与设计初等曲线曲面时时却遇到了麻烦。因为B样条曲线包括其特例的Bezier曲线都不能精确表示出抛物线外的二次曲线,B样条曲面包括其特例的Bezier曲面都不能精确表示出抛物面外的二次曲面,而只能给出近似表示。提出NURBS方法,即非均匀有理B样条方法主要是为了找到与描述自由型曲线曲面的B样条方法既相统一、又能精确表示二次曲线弧与二次曲面的数学方法。NURBS方法的主要优点: (1)既为标准解析形状(即前面提到的初等曲线曲面),又为自由型曲线曲面的精确表示与设计提供了一个公共的数学形式。 (2)修改控制顶点和权因子,为各种形状设计提供了充分的灵活性。 (3)具有明显的几何解释和强有力的几何配套技术(包括节点插入、细分、升阶等)。 (4)对几何变换和投影变换具有不变性。 (5)非有理B样条、有理与非有理Bezier方法是其特例。 不过,目前应用NURBS中还有一些难以解决的问题: (1)比传统的曲线曲面定义方法需要更多的存储空间,如空间圆需7个参数(圆心、半径、法矢),而NURBS定义空间圆需38个参数。 (2)权因子选择不当会引起畸变。 (3)对搭接、重叠形状的处理很麻烦。 (4)反求曲线曲面上点的参数值的算法,存在数值不稳定问题。 3.4.1 NURBS曲线的定义 NURBS曲线是由分段有理B样条多项式基函数定义的: 三维空间的NURBS曲线可以类似地定义。即对于给定的一组控制顶点 及对应的权因子,则有相应带权控制点,定义了一条四维的k阶非有理B样条曲线,然后,取它在第四坐标的超平面上的中心投影,即得三维空间里定义的一条k阶NURBS曲线。这不仅包含了明确的几何意义,也说明,非有理B样条的算法可以推广到NURBS曲线,只不过是在 齐次坐标下进行。 3.4.3 权因子的几何意义 由于NURBS曲线权因子w i只影响参数区间定义在区间上的那部分曲线的形状,因此,我们只考察整条曲线的这一部分。如果固定曲线的参数t,而使变化,则NURBS曲线方程变成以为参数的直线方程,即NURBS曲线上t值相同的点都位于同一直线上,如图3.1.35所示。我们把曲线与有理基函数的记号用用如下包含其权因子为变量的记号替代。因当时,的,故该直线通过控制顶点,分别是对应曲线上的点,即,,。 N,Bi可表示为: 用a 、b 可得到下述比例关系: 上式是(Pi,Bi,N,B)四点的交比,由此式可知: (1)若w i增大活减小,则b 也增大或减小,所以曲线被拉向或推离开 Pi点; (2)若w j增大或减小,曲线被推离或拉向Pj(j1 i)。 3.4.4 圆锥曲线的NURBS表示 若取节点向量为,则NURBS曲线退化为二次Bezier曲线,且 可以证明,这是圆锥曲线弧方程,称为形状因子,的值确定了圆锥曲线的类型。时,上式是抛物线弧,时,上式是双曲线弧,时,上式是椭圆弧。且时,上式退化为一对直线段和,时,上式退化为连接两点的直线段,如图3.1.36所示。 3.4.5 NURBS曲线的修改 NURBS曲线的修改有多种方式,常用的方法有修改权因子、控制点和反插节点。 1.修改权因子 权因子的作用是:当保持控制顶点和其它权因子不变,减少或增加某权因 子时,曲线被推离或拉向相应顶点。假定已给k阶(k-1)次NURBS曲线上参数为t的一点S,欲将曲线在该点拉向或推离控制顶点一个距离d,以得到新点,可由重新确定相应的权因子使之改变为来达到,如图3.1.37所示。 其中,表示和两点间的距离,d有正负之分,若在和之间,即曲线被拉向顶点和,d为正,反之为负。 修改过程是拾取曲线上一点,并确定该点的参数,再拾取控制多边形的一个顶点,它是k+1个控制顶点中的一个,即,便可算出两点间的距离d。若在直线段上拾取一个点 ,就能确定替代老权因子的新权因子,修改后的曲线将通过点。 2.修改控制顶点 若给定曲线上参数为的一点S,方向矢量V和距离d,计算控制顶点的 新位置,以使曲线上S点沿V移动距离d到新位置。可表示为:
这就是使得成为一个新控制顶点而要插入的新节点。 当插入新节点使成为新控制顶点的同时,将有k-2个老控制顶点被包括在内的新控制顶点所替代,如图3.1.38所示。 3.4.6 非均匀有理B样条(NURBS)曲面 1.NURBS曲面的定义 由双参数变量分段有理多项式定义的NURBS曲面是: 式中是矩形域上特征网格控制点列,是相应控制点的权因子,规定四角点处用正权因子,即,其余。和是p阶和q阶的B样条基函数,是双变量有理基函数: 节点矢量和按de Boor递推公式决定,通常具有下面的形式:
其中,Ri,k(t)(i=0,1,…,n)称为k阶有理基函数,Ni,k(t)是k 阶B样条基函数,Pi(i=0,1,…,n)是特征多边形控制顶点位置矢量;w i是与Pi对应 的权因子,首末权因子w 0,w n>0,其余w i3 0,以防止分母为零及保留凸包性质、曲线不因权因子而退化为一点;节点矢量为T=[t0, t1, … , ti, …,点tn+k],节个数是m=n+k+1(n为控制项的点数,k为B样条基函数的阶数)。 对于非周期NURBS曲线,常取两端节点的重复度为k,即 有:,在大多数实际应用中,a =0,b =1。P(t)在区间上是一个k-1次有理多项式,P(t)在整条曲线上具有k-2阶连续性,对于三次B样条基函数,具有C2连续性。当n=k-1时,k阶NURBS曲线变成k-1次有理Bezier曲线,k阶NURBS曲线的节点矢量中两端节点的成节点重复度取k+1就使得曲线具有同次有理Bezier曲线的端点几何性质。 Ri,k(t)具有k阶B样条基函数类似的性质: (1)局部支承性:Ri,k(t)=0,t? [ti, ti+k]; (2)权性:; (3)可微性:如果分母不为零,在节点区间内是无限次连续可微的,在节点处 (k-1-r)次连续可导,r是该节点的重复度。 (4)若w i=0,则Ri,k(t)=0; (5)若w i=+¥ ,则Ri,k(t)=1; (6)若w j=+¥ ,且j1 i,则Ri,k(t)=0; (7)若w j=1,j=0,1,…,n, 则是B样条基函数;若wjj=1,=0,1,…,n,且 则,Bi,k(t)是Bernstein基函数。 Ri,k(t)与Ni,k(t)具有类似的性质,导致NURBS曲线与B样条曲线也具有类 似的几何性质: (1)局部性质。k阶NURBS曲线上参数为的一点至多与k个控制顶点Pi及权因子有关,与其它顶点和权因子无关;另一方面,若移动k次NURBS曲线的一个控制顶点Pi或改变所联系的权因子仅仅影响定义在区间上那部分曲线的形状 (2)变差减小性质。 (3)凸包性。定义在非零节点区间上曲线段 位于定义它的k+1个控制顶点的凸包内。整条NURBS曲线位于所 有定义各曲线段的控制顶点的凸包的并集内。所有权因子的非负性,保证了凸包性质的成立。 (4)在仿射与透射变换下的不变性。 (5)在曲线定义域内有与有理基函数同样的可微性。 (6)如果某个权因子为零,那么相应控制顶点对曲线没有影响。 (7)若,则当时,。 (8)非有理与有理Bezier曲线和非有理B样条曲线是NURBS曲线的特殊情况 。 3.4.2 齐次坐标表示 为了便于讨论,我们考虑平面NURBS曲线的情况。图3.1.34所示,如果给一组控制顶点及对应的权因子则在齐次坐标系xyw中的控制顶点为。齐次坐标下的k阶非有理B样条曲线可表示为:
若以坐标原点为投影中心,则得到平面曲线:
令
a =Ri,k(t; w i=1 ),b = Ri,k(u)
于是:
由此可得新控制顶点:
3.反插节点 给定控制多边形顶点与权因子及节点矢量,就定义了一条k阶NURBS曲线。现欲在该多边形的 的边上选取一点,使得点成为一个新的控制顶点,这就是所谓反插节点。点可按有理线性插值给出:
于是:
所以
p个 q个
p个 q个
2.NURBS曲面的性质 有理双变量基函数与非有理B样条基函数相类似的性质: (1)局部支承性质:,当或 ; (2)权性:; (3)可微性:在每个子矩形域内所有偏导数存在,在重复度为r的u节点处沿u向是p-r-1次连续可微,在重复度为r的v节点处沿v向是q-r-1次连续可微; (4)极值:若p,q>1,恒有一个极大值存在; (5)是双变量B样条基函数的推广。 NURBS曲面与非有理B样条曲面也有相类似的几何性质,权因子的几何意义及修改、控制顶点的修改等也与NURBS曲线类似,这里不在赘述。 我们已经知道,计算机中表示形体,通常用线框、表面和实体三种模型。线框模型和表面模型保存的三维形体信息都不完整,只有实体模型才能够完整地、无歧义地表示三维形体。前面我们已经介绍了曲线曲面常用的的表示形式及其理论基础,从本小节开始,我们介绍实体造型技术的有关问题, 主要包括形体在计算机内的表示、分类求交算法和典型的实体造型系统。- NURBS曲线与曲面
- NURBS曲线 与 Rhinoceros曲面之王
- 第十二讲 绘制NURBS曲线和曲面
- Maya: 菜单 编辑NURBS >在曲面上投影曲线
- 在UE4中模拟NURBS曲线和曲面
- 使用GLU的NURBS绘制曲线和曲面(获取分格化图元和曲面修剪)
- NURBS曲面显示Bezier曲面
- Bezier曲线与曲面(1)
- Bezier曲线与曲面(2)
- Bezier曲线与曲面(1)
- Bezier曲线与曲面(1)
- Bezier曲线与曲面(2)
- 曲线与曲面相关网站
- 曲线积分与曲面积分
- 剪裁NURBS曲面
- 9 Maya模型基础--复制nurbs面片、在曲面上投影曲线、偏移表面
- The NURBS Book: 第4章 有理B样条曲线和曲面
- THREE.js -- 增加Nurbs曲线旋转生成曲面,即时调整更新实例
- Verizon,AT&T和思科看好物联网[Yeeyan.com 20100408][邵新江]
- WCF RIA 服务 (三十)-- 身份验证、角色、个性化
- 函数指针
- firefox ie css中到底的差别
- jQuery 中的DOM操作(一)
- NURBS曲线与曲面
- 工具程序
- 2009年信息系统项目管理师下半年11月份软考经历
- WCF RIA 服务 (三十一)-- 身份验证、角色、个性化 2
- ActiveSync合作关系对话框的取消
- 学习php jpgraph教程
- ERP
- 强类型数据集的数据库连接串问题解决
- 在ADS平台下建立自己的Bootloader烧录工具