1.3 曲线、曲面造型原理
1.3.1 自由曲线、曲面的造型原理
曲面造型(Surface Modeling)是计算机辅助几何设计(Computer Aided Geometric Design,CAGD)和计算机图形学(Computer Graphics)的一项重要内容,主要研究在计算机图像系统的环境下对曲面的表示、设计、显示和分析。它起源于汽车、飞机、船舶、叶轮等的外形放样工艺,由Coons、Bezier等大师于20世纪60年代奠定其理论基础。如今经过30多年的发展,曲面造型现在已形成了以有理B样条曲面(Rational B-spline Surface)参数化特征设计和隐式代数曲面(Implicit Algebraic Surface)表示这两类方法为主体,以插值(Interpolation)、拟合(Fitting)、逼近(Approximation)这三种手段为骨架的几何理论体系。
1.基本概念
曲线、曲面可以用显式、隐式和参数表示。
显式:形如z=f(x,y)的表达式。对于一个平面曲线,显式表示一般形式是:y=f(x)。在此方程中,一个x值与一个y值对应,所以显式方程不能表示封闭或多值曲线,例如,不能用显式方程表示一个圆。
隐式:形如f(x,y,z)=0的表达式。如一个平面曲线方程,表示成f(x,y)=0的隐式表示。隐式表示的优点是易于判断函数f(x,y)是否大于、小于或等于零,也就易于判断点是落在所表示曲线上或在曲线的哪一侧。
参数表示:形如x=f(t),y=f(t),z=f(t)的表达式,其中t为参数。即曲线上任一点的坐标均表示成给定参数的函数。
如平面曲线上任一点P可表示为:P(t)=[x(t),y(t)]。
空间曲线上任一三维点P可表示为:P(t)=[x(t),y(t),z(t)]。
空间点、线参数化表示如图1-8所示。
图1-8 空间点、线参数化表示
最简单的参数曲线是直线段,端点为P1、P2的直线段参数方程可表示为:
圆在计算机图形学中应用十分广泛,其在第一象限内的单位圆弧的非参数显式表示为:
其参数形式可表示为:
由于参数表示的曲线、曲面具有几何不变性等优点,所以在计算机图形学中通常用参数形式描述曲线、曲面,其优势主要体现在以下几个方面。
(1)可以满足几何不变性的要求,坐标变换后仍保持几何形状不变。
(2)有更大的自由度来控制曲线、曲面的形状。
如一条二维三次曲线的显式可以表示为:
该表达式只有四个系数控制曲线的形状,而二维三次曲线的参数表达式为:
(3)对非参数方程表示的曲线、曲面进行变换,必须对其每个型值点进行几何变换,不能对其方程变换(因不满足几何变换不变性);而对参数表示的曲线、曲面,可对其参数方程直接进行几何变换。
(4)便于处理斜率为无穷大的情形,不会因此而中断计算。
(5)参数方程中,代数、几何相关和无关的变量是完全分离的,而且对变量个数不限,从而便于用户把低维空间中曲线、曲面扩展到高维空间去,这种变量分离的特点使我们可以用数学公式处理几何分量。
(6)规格化的参数变量t∈[0,1],使其相应的几何分量是有界的,而不必用另外的参数去定义边界。
(7)易于用矢量和矩阵表示几何分量,简化了计算。
2.Bezier曲线和曲面
1)Bezier曲线
给定n+1个控制点P0,P1,P2,…,Pn,引入伯恩斯坦(Bernstein)基函数:
式中
可以定义一条曲线:
该曲线被称为Bezier曲线。Pj(j=0,1,2,...,n)称为控制点或Bezier点。依次连接n个控制点形成的空间折线,称为控制多边形。
这里,以三次Bezier曲线为例讨论Bezier曲线的性质。对式(1-7),令n=3,则P0、P1、P2、P3四个控制点可构造一条三次Bezier曲线,如图1-9所示。此时,基函数为:
图1-9 三次Bezier曲线
即各阶基函数为:
则三次Bezier曲线表示为:
由Bezier曲线的定义式和伯恩斯坦基函数的性质,三次Bezier曲线有如下的特点:
①曲线过控制顶点的首末两个端点 将t=0和t=1带入式(1-7),有P(0)=P0,P(1)=P3。
②曲线在两端点处相切于控制多边形 通过对Bezier曲线的表达式求一阶导数,并分别将t=0和t=1代入得:
特点①和特点②是Bezier曲线的基本性质,为手工绘制Bezier曲线提供了方便。
③凸包性Bezier曲线不会越出控制多边形顶点P0、P1、P2、P3所形成的凸包(包含所有顶点的最小凸多边形)的范围。
④几何不变性Bezier曲线的几何特征不随坐标变换而变化。
⑤可分割性 可以将一段Bezier曲线在其中间某一点处分割为两段,每一段仍然为一段新的Bezier曲线。因此,Bezier曲线具有无限可分割性。
三次Bezier曲线通常为一条空间曲线,当其控制多边形顶点P0、P1、P2、P3在同一平面上时,则其描述的Bezier曲线为一平面曲线。当P0、P1、P2、P3在同一直线上时,则其Bezier曲线退化为一直线段。
2)Bezier曲面
利用控制点、基函数生成Bezier曲线的方法可以推广来生成Bezier曲面。给定(n+1)×(m+1网格的控制顶点Pi,j(i=0,1,2,· · ·,n, j=0,1,2,···,m),利用基函数Bi,n(u),Bj,m(v)可构成一张曲面片,称该曲面片为n×m次Bezier曲面。它可描述为:
其中,i=0,1,2,...,n, j=0,1,2,...,m,(u,v)∈[0,1]×[0,1]。Bi,n(u),Bj,m(v)与Bezier曲线的基函数相同。
固定参数v,对参数u而言是一簇Bezier曲线;固定参数u,对参数v而言也是一簇Bezier曲线。因此,Bezier曲面是由Bezier曲线簇交织而构成的曲面,即可利用Bezier曲线的网格来绘制或显示Bezier曲面。为方便起见,这里仅以双三次Bezier曲面来说明,如图1-10所示,令n=m=3,则(1-9)可表示为:
图1-10 双三次Bezier曲面
即:
式中
注意到,当j≠0时,Bj,3(0)=0;当j≠3时,Bj,3(1)=0。
此时令v=0,则有:
上式表明Pi, 3(i=0,1, 2, 3)也是P(u,1)的四个控制顶点。同理,P0,j(j=0,1, 2, 3)是P(0,v)的四个控制顶点,P3,j(j=0,1, 2, 3)是P(1,v)的四个控制顶点,而其余的Pi,j并不是P(u,v0)或P(u0,v)(其中,u0,v0∈(0,1)为常数)的控制顶点。
进一步地,有四个控制顶点P0,0、P0,3、P3,0、P3,3与Bezier曲面的四个顶点P(0,0)、P(0,1)、P(1,0)、P(1,1)重合,并且在该点保持相切,这与Bezier曲线是一样的特点。此外,Bezier曲面具有与Bezier曲线相似的特点,如凸包性、几何不变性、可分割性等。
3)Bezier曲线、曲面的拼接
在工程实际中存在许许多多的复杂曲线和曲面,不可能用一条Bezier曲线或一张曲面就能拟合复杂曲线或曲面。具体的做法是,采用多段Bezier曲线经拼接后来拟合实际存在的复杂曲线;采用多张Bezier曲面拼接后来拟合实际曲面。在这里仍以三次Bezier曲线及双三次Bezier曲面为例,讨论Bezier曲线以及Bezier曲面的拼接问题。
(1)Bezier曲线段的拼接。
对于Bezier曲线来说,很容易将几段曲线连接起来。考虑到实际工程应用中,很多情况下曲线均为光滑的。因而希望各段Bezier曲线间的拼接具有某阶连续性,通常要求是切线方向连续(即一阶几何连续)和曲率向量连续(即二阶几何连续)。
设有三次Bezier曲线段P(u)、P(v):
①0阶几何连续的拼接条件 即只考虑位置连续,由Bezier曲线的特性有
P(1)=Q(0) 或Q(1)=P(0)
即
P3=Q0或Q3=P0
②一阶几何连续的拼接条件 对一阶几何连续拼接条件,在应满足式(1-14)的基础上,还应满足下述条件:
λP'(1)=Q'(0)
式中λ >0。由此可得:
3λ (P3-P2)=3(Q1-Q0)
利用P3=Q0,则有:
-λ(P2-Q0)=Q1-Q0
此式表明,要满足一阶连续拼接条件,必须使P3=Q0以及P2、P3(Q0)、Q1满足共线条件,如图1-11所示。同样的道理也可得到曲率连续的拼接条件。
图1-11 三次Bezier曲线的一阶连续拼接
(2)Bezier曲面的拼接。
对于两张给定的双三次Bezier曲面片,由式(1-12)有:
式中,。
①位置连续的拼接条件 与Bezier曲线拼接条件的方法相同,要满足位置连续,二曲面片只需满足:
即只需控制网格顶点满足:
也就是说,相邻两张Bezier曲面边界只要采用公共的控制顶点就能保证曲面的边界位置连续条件。
②一阶几何连续的拼接条件 除满足位置连续条件外,还应满足下列条件:
式中,λ>0,v∈[0,1]。此时,满足一阶几何连续的充分条件(非必要条件)为:
它的几何意义是:P2,i,P3,i(=Q0,i),P1,i(0,1,2,3)应位于同一直线上,如图1-12所示。
图1-12 双三次Bezier曲线的拼接
3.B样条曲线与曲面
1)B样条曲线
尽管Bezier曲线具有许多优越性,但有两点不足:其一是控制多边形顶点的个数决定了Bezier曲线的次数,而当N较大时,控制多边形对曲线的控制将会削减;其二是Bezier曲线不能进行局部修改,改变一个控制点的位置会对整个曲线有影响。B样条曲线正是基于上述问题的解决而提出的。
B样条曲线定义:已知n+1个控制点Pi(i=0,1,…,n),k阶(k-1次)B样条曲线的表达式为
其中,基函数的递归公式为:
式中,ti是节点值,非递减的参数t序列T=[t0,t1,· · ·,tn+k]称为节点矢量。当节点沿参数轴均匀等距分布,即ti1+ -ti为常数时,称为均匀B样条函数。否则,称为非均匀B样条函数。
该定义说明:①由空间n+1个控制点生成的k阶B样条曲线是 由L=n-k+1段B样条曲线逼近而成的,每段曲线段的形状仅由点列中的k个顺序排列的点所控制;②由不同节点矢量构成的均匀B样条函数所描述的形状相同,可看成是函数的简单平移。
从n+1个控制点中取相邻的4个顶点,可以构造一条三次均匀B样条曲线,其表达式为:
B样条曲线的性质如下:
①局部性k阶B样条曲线上的一点,只被相邻的k个顶点所控制,与其他控制顶点无关。当移动一个顶点时,只对其中的一段曲线有影响,对整个曲线的其他部分没有影响。局部性是B样条曲线最重要的性质之一,这是Bezier曲线所不具备的。
②凸包性B样条曲线的凸包是定义各曲线段的控制顶点的凸包的并集。凸包区域比同一组顶点定义的Bezier曲线凸包区域要小,具有比Bezier曲线更强的凸包性,B样条曲线恒位于它的凸包内。
③几何不变性B样条曲线的几何特征不随坐标变换而变化。
④可分割性 可以将一段B样条曲线在其中间某一点处分割为两段,每一段仍然为一段新的B样条曲线。
2)B样条曲面
这里仅考虑均匀双三次B样条曲面的情况,将均匀三次B样条曲线的定义推广可得到均匀双三次B样条曲面的定义。已知曲面的控制点Pi,j(i,j=0,1,2,3),参数(u,v)∈[0,1],则表达式为:
式中,
均匀双三次B样条曲面如图1-13所示,它由16个控制网格顶点来定义。
图1-13 均匀双三次B样条曲面
利用此图可更直观地理解均匀双三次B样条曲面的生成:类似Bezier曲面的方法,可以理解为首先沿v方向构造一簇均匀三次B样条曲线P0(v)、P1(v)、P2(v)、P3(v),然后沿u方向构造B样条曲线,此时可以认为是顶点沿着P(v)线滑动,每一组顶点对应相同的v值,当v值连续地由0变化到1时,即形成B样条曲面。
4.NURBS曲线与曲面
NURBS——非均匀有理B样条,这种方法的提出是为了找到与描述自由型曲线、曲面的B样条方法相统一的又能精确表示二次曲线弧与二次曲面的数学方法。NURBS方法主要有以下四个特点:
①NURBS不仅可以表示自由曲线、曲面,它还可以精确地表示圆锥曲线和规则曲线,所以NURBS为计算机辅助几何设计(CAGD)提供了统一的数学描述方法;
②NURBS具有影响曲线、曲面形状的权因子,故可以设计相当复杂的曲线、曲面形状。若运用恰当,将更便于设计者实现自己的设计意图;
③NURBS方法是非有理B样条方法在四维空间的直接推广,多数非有理B样条曲线、曲面的性质及其相应的计算方法可直接推广到NURBS曲线、曲面;
④计算稳定且快速。
然而,NURBS也存在一些缺点:
①需要额外的存储以定义传统的曲线和曲面;
②权因子的不合适应用可能导致很坏的参数化,甚至毁掉随后的曲面结构。虽然NURBS存在这样一些缺点,但其强大的优点使其已成为自由型曲线、曲面的唯一表示。
1)NURBS曲线
一条k次NURBS曲线定义为:
其中,ωi,i=0,1,…,n称为权,与控制顶点di,i=0,1,…,n相关联,其作用类似基函数,但更直接。ω0,ωn>0,ωi≥0,可防止分母为零、保留凸包性质及曲线不致退化。di,i=0,1,…,n为控制顶点。Ni,k(u)是由节点U=[u0,u1,…,un+k+1]决定的k次(k+1)阶B样条基函数。
对于非周期NURBS曲线,两端点的重复度可取为k+1,即u0=u1=…=uk,un+1=un+2=…=un+k+1,且在大多数实际应用中,节点值分别取为0 和1。因此,曲线定义域为u∈[uk,un+1]=[0,1]。
由于NURBS曲线与B样条曲线采用相同的基函数,因此NURBS曲线具有和B样条曲线相同的性质。除此之外,由于权因子的作用,使NURBS曲线具有更大的灵活性,且表达能力大大增强,NURBS曲线能统一表达圆锥曲线、B样条曲线和Bezier曲线。
2)NURBS曲面
由双参数变量分段有理多项式定义的NURBS曲面是:
这里控制顶点di,j,i=0,1, …,m;j=0,1, …,n呈拓扑矩形阵列,形成一个控制网格。ωi,j是与顶点di,j联系的权因子,规定四角顶点处用正权因子即ω0,0,ωm,0,ω0,n,ωm,n>0,其余ωi,j≥0;Ni,k(u)(0,1, …,m)和Nj, l(v)(0,1, …,n)分别为u向k次和v向l次的规范B样条基。它们分别由u向与v向的节点矢量U=[u0,u1, …,um+k+1]与V=[v0,v1, …,vn+l+1]决定。
与NURBS曲线性质类似,由于NURBS曲面与B样条曲面采用相同的基函数,因此NURBS曲面具有和B样条曲面相同的性质,除此之外,由于权因子的作用,使NURBS曲面具有更大的灵活性,且表达能力大大增强,NURBS曲面能统一表达二次曲面(如球面,柱面、圆环面等)、B样条曲面和Bezier曲面等。
1.3.2 CAD系统常见曲线、曲面造型
1.CAD系统中曲线造型
目前CAD软件系统中常采用的曲线造型手段主要有以下三种。
①直接公式定义:直线、圆弧,ACIS中的law等,如图1-14所示。
图1-14 基本曲线
②输入控制点,如图1-15所示。
图1-15 控制点造型
③输入型值点(最常见),如图1-16所示。
图1-16 型值点造型
由设计人员输入曲线上的型值点来设计曲线,此时曲线生成就是所谓的曲线反算过程。该方法是曲线设计的主要方法,此方法用户定义、修改曲线直观方便。
2.CAD系统中曲面造型
目前CAD软件系统中常采用的曲面造型手段主要有以下几种。
①基本曲面:由数学表达式表示二次简单曲面,如图1-17所示。
图1-17 基本曲面
②拉伸曲面:可沿指定方向扫掠曲线、边、面、草图或曲线特征的2D或3D部分一段直线距离,由此来创建曲面,如图1-18所示。
图1-18 拉伸曲面
③回转曲面:可使截面曲线绕指定轴回转一个非零角度,以此创建一个曲面特征,如图1-19所示。
图1-19 回转曲面
④扫掠曲面:可通过沿着一条、两条或三条引导线串扫掠一个或多个截面线串,来创建曲面,如图1-20所示。
图1-20 扫掠曲面
⑤网格曲面:可以通过一组曲线截面线串来创建曲面,线串可以由主线串和交叉线串构成,共同控制曲面,如图1-21所示。
图1-21 网格曲面
1.3.3 曲线、曲面质量评估分析
1.曲面划分等级
曲面在过渡过程中,根据它们之间的过渡形式划分为三个等级。
①A Class曲面:达到G2, G3连续,即2阶或3阶连续。面与面之间曲率连续。例如车身外表面,白车身。
②B Class曲面:达到G1连续,即1阶连续。面与面之间相切连续,曲率不连续,点连续。
③C Class曲面:达到G0连续,即0阶连续。面与面之间点连续,曲率不连续,相切不连续。
2.曲面过渡类型
曲面连续性可以理解为相互连接的曲面之间过渡的光滑程度。提高连续性级别可以使表面看起来更加光滑、流畅。共有以下5种连续性的分类。
①G0-位置连续 两组边界仅仅在端点重合,而连接处的切线方向和曲率均不一致。这种连续性的表面看起来会有一个很尖锐的接缝,属于连续性中级别最低的一种。
②G1-切线连续 两组边界不仅在连接处端点重合,而且切线方向一致。这种连续性的表面不会有尖锐的,连接接缝,但是由于两种表面在连接处曲率突变,所以在视觉效果上仍然会有很明显的差异,会有一种表面中断的感觉。
③G2-曲率连续 两组边界不但符合上述两种连续性的特征,而且在接点处的曲率也是相同的。这种连续性的曲面没有尖锐接缝,也没有曲率的突变,视觉效果光滑流畅,没有突然中断的感觉(可以用斑马线测试)。这通常是制作光滑表面的最低要求,也是制作A级面的最低标准。
④G3-曲率变化率连续 这种连续级别不仅具有上述连续级别的特征,两组曲线在接点处曲率的变化率也是连续的,这使得曲率的变化更加平滑。这种连续级别的表面有比G2更流畅的视觉效果。但是由于需要用到高阶曲线或需要更多的曲线片断,所以通常只用于汽车设计。
⑤G4-曲率变化率的变化率连续“变化率的变化率”似乎听起来比较深奥,实际上可以这样理解,它使曲率的变化率开始缓慢,然后加快,然后再慢慢地结束。这使得G4连续级别能够提供更加平滑的连续效果。但是这种连续级别将比G3计算起来更复杂,而且在视觉效果上与G3连续基本一致,故很少使用。
曲面过渡情况一般可以通过曲率梳和斑马线进行区分,如图1-22所示。G0的斑马线在连接处毫不相关,各走各的,线和线之间不连续,通常是错开的。G1的斑马线虽然在相接处是相连的,但是从一个表面到另一个表面就会发生很大的变形,通常会在相接的地方产生尖锐的拐角。G2的斑马线则是相连,且在连接处有一个过渡,通常不会产生尖锐的拐角,也不会错位。G3,G4这两种连续级别通常不使用,因为它们的视觉效果和G2几乎相差无几,而且消耗更多的计算资源。这两种连续级别的优点只有在制作像汽车车体这种大面积、为了得到完美的反光效果而要求表面曲率变化非常平滑的时候才会体现出来。
图1-22 曲线、曲面过渡分析
3.曲面过渡要求
曲面的拓扑关系、位置、切线、曲面边界处的曲率及曲面内部的面片(patch)结构,一般有如下要求。
①一般CLASS-A的阶次与控制点数目都不多,U、V方向大概有6~8个控制点。
②单独一个CLASS-A曲面在U、V方向都保证曲率的连续性及变化趋势的一致。
③CLASS-A曲面之间的连接至少满足切向连续。
④使用多种数学检验方法来检验CLASS-A曲面,不应该出现视觉上的瑕疵。必须满足如下要求:
✧相邻曲面间的间隙在0.005mm以下(有些汽车厂甚至要求到0.001mm)。
✧切率改变(Tangency Change)在0.16°以下。
✧曲率改变(Curvature Change)在0.005°以下。