第4章车身曲线曲面的数学模型基础对于汽车、飞机及其他一些具有复杂外形的机电产品,CAD/CAM的一个关键性环节,就是用数学方法来描述它们的外形,并在此基础上建立它们的几何模型。本章介绍定义车身外形曲线和曲面的一些常用的、基本的数学方法。主要内容有:参数样条曲线及孔斯曲面、贝齐尔方法、均匀B样条曲线、非均匀B样条曲线、双三次B样条曲面、非均匀有理B样条曲线和曲面等。4.1参数样条曲线及孔斯曲面4.1.1三次样条曲线(cubicsplinecurve)数学上的样条函数是对绘图用的样条的模拟。如将样条简化为弹性细杆,必定满足欧拉方程:M(x)=EIK(x)(4.1.1-1)其中M(x)是弯矩,E是杨氏系数,I是截面惯性矩,K(x)是样条的曲率。从(4.1.1-1)式出发,经数学推导可得出如下的三次样条函数表达式:(4.1.1-15)三次样条函数S(x)的本质是:一致通过型值点、二阶连续可导的分段三次多项式函数。))(6())(6(661113131iiiiiiiiiiiiiiiixxMhhyxxMhhyhxxMhxxMxS)()(M(二阶导数)关系式在各中间(连接)点一阶导数连续,S'(xi-0)=S'(xi+0),即(式中:hi=xi-xi-1)各项乘以,得:令:则有Mi-1+2Mi+λiMi+1=di(i=1,2,……,n-1)(4.1.1-16)当i取值1,2,…,n-1时,可得到n-1个形如(4.1.1-16)的M关系式。但未知数——二阶导数Mi却有n+1个,即M0,M1,…,Mn。要唯一定解,必须再附加两个方程。通常按实际问题的具体情况,在样条两端,即P0和Pn处给出约束条件,常用的边界条件有:iiiiiiiiiiiiihyyhyyMhMhhMh111111163616iihh)(62111111111iiiiiiiiiiiiiiiiihyyhyyhhMhhhMMhhhiiiiiiiiiiiiiiiiidhyyhyyhhhhhhhh)(6,1111111常用的边界条件有:1.给定两端的斜率m0=y0′和mn=yn′以x=x0,i=1代入式(4.1.1-14),得(4.1.1-17)以x=xn,i=n代入式(4.1.1-14),得(4.1.1-18)式(4.1.1-16)和这两个附加方程合在一起得到有确定解的线性方程组。写成矩阵形式为(4.1.1-19)。2.给定两端的二阶导数M0=y״0,Mn=yn〞这可以写成:2M0+0×M1=2y״00×Mn-1+2Mn=2y״n此时式(4.1.1-19)中的λ0=0,d0=2y0〞,μn=0,dn=2y״n。如果y״0=y״n=0,则称为自然插值三次样条函数。3.如果取λ0=-2,d0=0,μn=-2,dn=0则M0=M1,Mn-1=Mn,这就是抛物端边界条件。)(620101110yhyyhMM)(6211nnnnnnnhyyyhMM三次样条函数的解法(4.1.1-16)由端点条件补充两个方程后,得出如下线性方程组:(4.1.1-19)式中:可以用“追赶法”(参看附录A)求解(4.1.1-19)式,解出Mi(i=1,2,…,n)代入(4.1.1-15),便可由(4.1.1-15)式计算出样条曲线上的一系列插值点。nnnnnnnnnnnddddddMMMMMM122101221011222211022022022)(6,1)(6,11101100nnnnnnnhyyyhdyhyyhd4.1.2三次参数样条曲线在大挠度情况下,三次样条函数的光顺性可能变坏。用三次样条函数表示的插值曲线,依赖于座标系的选择,不具有几何不变性。有时旋转座标轴也不可能满足小挠度条件在这些情况下,最常用的处理办法之一是将曲线参数化,即将曲线上点的座标分别用某种参数表示:(4.1.2-1)其中t为参数,常取曲线内在的量——弧长作为参数,它与坐标系无关。若将t取作弧长s,则x和y作为分量,dx∕ds和dy∕ds都不会大于1,在(x,s),(y,s)平面上各构造一个三次样条函数:(4.1.2-2)曲线上的点比较密时,弦长之和近似于弧长,因此可取累加弦长作为三次参数样条曲线的参数。)()(21tfytfx323210323210xasasasaybsbsbsbì=+++ïïïíï=+++ïïî设给定个点Pi(xi,yi),i=0,1,……,n,两相邻点之间的弦长为:(4.1.2-3)记:这里ti的几何意义是累加弦长,它近似等于弧长参数。在每一个节点pi都有一个确定的ti与之对应。当然pi的每一个坐标xi或yi也与ti一一对应。这就相当于给定了两组点(xi,ti)和(yi,ti),i=0~n。对于每一组点,都可按4.1.1节所述方法构造一个三次样条函数。这种曲线称为累加弦长三次参数样条曲线。在平面曲线的情况下,构造三次参数样条曲线相当于构造两遍三次样条曲线。这在工程上是经常使用的方法。niyyxxliiiii,,2,12121nilttijji,,2,1,,0104.1.3弗格森曲线下面讨论参数样条曲线中的某一段,并用端点及端点的导数来表达出这段曲线的方程。设参数为u,第i段曲线对应的参数范围为,在〔0,1〕区间上对应于两个端点型值点的函数值及一阶导数值分别为r(0),r(1),r’(0),r’(1)。则插值函数为(4.1.3-1)那么(4.1.3-2)将四个已知条件代入以上两式,可解得四个系数a0,a1,a2,a3,再将求得的系数代回上式则得曲线段的方程为:(4.1.3-3)式中(4.1.3-4)我们称F0(u),F1(u),G0(u),G1(u)为埃尔米特(Hermite)基函数。10u332210)(uauauaauP10u232132)(uauaauP)()1()()0()()1()()0()(1010uGruGruFruFruP)1()()1()(32)(132)(2120231230uuuGuuuGuuuFuuuF由式(4.1.3-4)可见,F0与F1专门控制端点的函数值对曲线形态的影响,G0和G1专门控制端点的一阶导数对曲线形态的影响。或者说,F0和G0控制左端的影响,F1和G1控制右端的影响。由式(4.1.3-3)确定的曲线可以进一步整理为矩阵形式:(4.1.3-5)该曲线也叫弗格森曲线。RUMurrrruuuuPc1,0)1()0()1()0(11221233010000011)(324.1.4孔斯(Coons)曲面是S.A.Coons(是美国波音公司搞实际设计的专家)提出的一种适用于CAGD的构作自由型曲面的方法。孔斯曲面的基本思想是:把所要描述的曲面看作由若干曲面片光滑拼接而成,每个曲面片一般用四条边界曲线来定义。且尽量用简缩符号来表达。双三次孔斯曲面的表达形式为:uw=UMCMTWT(4.1.4-1)式中U=〔1uu2u3〕MTWT分别是M和W的转置。321,1122123301000001=(4.1.4.2)C称为角点信息矩阵。Coons曲面主要用于曲面设计,但用于曲面拟合也有较好的效果。(如,用零扭矢Coons曲面拟合飞机局部复杂曲面)。Coons曲面方法的主要缺点:1)角点扭矢与曲面内部形状的联系,难以掌握;2)确定扭矢是个难题;3)双三次Coons曲面的拼接只能达到一阶连续;4)角点信息多,占内存大,计算量也大。这些缺点限制了Coons曲面的广泛应用。uwuwuuuwuwuu扭矢切向量切向量角点uw4.2贝齐尔(Bezier)方法法国雷诺汽车公司的贝齐尔(P.Bezier)于1962年着手研究一种以逼近为基础的构造曲线与曲面的方法,并以这种方法建立了一种自由型曲线与曲面设计系统——UNISURF系统。该系统于1972年投入使用,至今已有很大的发展。应用该方法的还有英国剑桥大学的Multiobject实用设计系统等。贝齐尔方法有许多优良的性质,已成为自由型曲线曲面造型先进的数学方法之一。4.2.1贝齐尔曲线设有n+1个控制顶点P0,P1,……,Pn,借助于一组Bernstein基函数Bi,n(u)=C(n,i)ui(1-u)n-i(i=0,1,2,…,n),可以定义一条曲线:(4.2.1-1)该曲线称为n次贝齐尔曲线。其中:C(n,i)是组合数,n是贝齐尔曲线次数,i是顶点标号,u为曲线的参数。10,0uuBPuPninii!!!,inininC贝齐尔曲线的分量的形式:P(u)=[x(u),y(u),z(u)](4.2.1-2)Pi=(xi,yi,zi,)(4.2.1-3)(4.2.1-4)为了了解控制顶点Pi(i=0,1,2,…,n)如何通过基函数Bi,n(u)控制曲线的形状,先考察n=3的情形。由定义可得:(4.2.1-6)Bi,3(u)(i=0,1,2,3)的图形见图4.2.1-1。niniininiininiiuBzuzuByuyuBxux0,0,0,)()()()()()(33,323,223,133,0)1(3)1(3)1(uuBuuuBuuuBuuB控制顶点Pi通过基函数Bi,n(u)控制曲线的形状B0,3(u)在u=0附近影响最大,B1,3(u)在u=1/3附近,B2,3(u)在u=2/3附近影响最大,而B3,3(u)在附近影响最大。因为u=0时P(0)=P0,故P0决定曲线的起点。U=1时P(1)=P3,故P3决定曲线的终点。P1则主要通过B1,3(u)影响曲线在u=1/3附近的形状;P2则主要通过B2,3(u)影响曲线在u=2/3附近的形状。图4.2.1-2是P0,P1,P2,P3控制曲线形状的几个例子。贝齐尔曲线的性质1.端点性质。根据贝齐尔曲线的定义可以证明:P(0)=P0,P(1)=Pn,表明P0和Pn是贝齐尔曲线的起点和终点。还可以证明:P’(0)=na1,P’(1)=nan式中ai=Pi-Pi-1(i=1,2,…,n)代表贝齐尔多边形的边向量,说明贝齐尔曲线分别以a1和an为起端和终端的切向,类似地也有:P”(0)=n(n-1)(a2-a1)P”(1)=n(n-1)(an-an-1)2.对称性。保持贝齐尔曲线诸顶点的位置不变,只把次序完全颠倒过来,新的顶点序列记为P*i=Pn-i(i=0,1,2,…,n)生成贝齐尔曲线仍然是原曲线,3.凸包性。贝齐尔曲线上各点一定落在特征多边形在的凸包之中。4.几何不变性。由于贝齐尔曲线曲线的形状与特征多边形各顶点Pi有关,它不依赖于座标系的选择。5.交互能力。控制多边形P0,P1,…,Pn大致地勾画出Bezier曲线P(u)的形状,要改变P(u)的形状,只需改变P0,P1,…,Pn的位置,把控制多边形作为曲线输入和人机交互的手段,既直观又简便。6.保凸性。如果平面上的凸控制多边形能导致所生成的曲线为凸曲线,则称这个生成曲线的方法具有保凸性。Bezier曲线具有这种保凸性质。7.变差缩减性。如果Bezier曲线P(u)的控制多边形是一平面图形,则该平面内的任意直线与P(u)的交点个数不多于该直线与控制多边形的交点的个数。这一性质被称为变差缩减性。