您好,欢迎访问三七文档
曲线曲面的计算机辅助设计源于20世纪60年代的飞机和汽车工业。¾1963年美国波音公司的Ferguson提出用于飞机设计的参数三次方程;¾1962年法国雷诺汽车公司的Bézier于提出的以逼近为基础的曲线曲面设计系统UNISURF,此前deCasteljau大约于1959年在法国另一家汽车公司雪铁龙的CAD系统中有同样的设计,但因为保密的原因而没有公布;¾1964年Coons提出了一类布尔和形式的曲面;¾1972年,deBoor和Cox分别给出B样条的标准算法;¾1975年以后,Riesenfeld等人研究了非均匀B样条曲线曲面,美国锡拉丘兹大学的Versprille研究了有理B样条曲线曲面,20世纪80年末、90年代初,Piegl和Tiller等人对有理B样条曲线曲面进行了深入的研究,并形成非均匀有理B样条(Non-UniformRationalB-Spline,简称NURBS);¾1991年国际标准组织(ISO)正式颁布了产品数据交换的国际标准STEP,NURBS是工业产品几何定义唯一的一种自由型曲线曲面。2.1插值和逼近z给定一组有序的数据点Pi,i=0,1,…,n(测量所得,或由设计员给出),要求构造一条曲线顺序通过这些数据点,称为对这些数据点进行插值,所构造的曲线称为插值曲线。z某些情况下,测量所得的点本身就很粗糙,要求严格通过这些就没有什么意义。更合理的提法是构造一条曲线使之在某种意义下昀为接近给定数据点,称之为对这些数据点的逼近,所造的曲线称为逼近曲线。z差值和逼近统称为拟合。2.参数样条曲线和曲面为什么采用参数多项式曲线1.表示昀简单,易于计算函数值和各阶导数值。2.理论和应用昀成熟插值得到的曲线曲面称为参数多项式曲线曲面。2.2多项式基2.32.3三次样条函数(三次样条函数(SplineSpline))Schoenberg于1946年提出,国外60年代广泛研究,国内70年代开始。[]EIxMdxdydxydxR)()/(1/)(12/3222=+=由材料力学可知,R(x)R(x)——梁的曲率半径梁的曲率半径M(x)M(x)——作用在梁上的弯矩作用在梁上的弯矩EE——材料的弹性模量材料的弹性模量II——梁横截面的惯性矩梁横截面的惯性矩在梁弯曲不大的情况下,y´1,简化为:y´´(x)=M(x)y(x)是x的三次多项式,这就是插值三次样条函数的物理背景。样条曲线的物理背景样条曲线的物理背景样条(spline)是富有弹性的细木条或有机玻璃条。早期船舶、汽车、飞机放样时用压铁压在样条上的一系列型值点上,调整压铁达到设计要求后绘制其曲线,称为样条曲线y(x)。((11)样条在压铁两侧斜率相同,相当于函数一阶连续;)样条在压铁两侧斜率相同,相当于函数一阶连续;((22)样条在压铁两侧曲率相同,相当于函数二阶连续;)样条在压铁两侧曲率相同,相当于函数二阶连续;三次样条函数的数学描述三次样条函数的数学描述在区间在区间[a,b][a,b]上给定一个分割上给定一个分割ÌÌ::a=xa=x11xx22••••••xxnn=b,=b,则称在区间则称在区间[a,b][a,b]上满足下列条件的函数上满足下列条件的函数S(x)S(x)为三次样条函数:为三次样条函数:((11)给定一组型值点)给定一组型值点((xxii,y,yii))(i(i=1,2,=1,2,••••••,n,n)),,S(xS(x))满足满足S(xS(xii))==yyii,,((22)在每个子区间)在每个子区间[x[xii--11,x,xii]]((i=1,2,i=1,2,••••••,n,n)上为)上为三次多项式三次多项式;;((33)在整个区间)在整个区间[a,b][a,b]上具有直到二阶连续的导数,即在内节点上具有直到二阶连续的导数,即在内节点xxii处,处,i=2,3,i=2,3,••••••,n,n--1,k=0,1,21,k=0,1,2则称则称S(x)S(x)为插值三次样条函数;为插值三次样条函数;)x(S)x(Si)k(i)k(+−=(xi-1,yi-1)(xi,yi)ttii--11tiS(x)=ai+bix+cix2+dix3i=1,2,…,nS(xi-1)=yi-1S(xi)=yiS’(xi-1)=ti-1S’(xi)=ti物理样条的性质用型值点处的一阶导数表示插值三次样条函数―m关系式插值三次样条函数有两种常用的表达方式,一种是用型值点处的一阶导数表示的mm关系式关系式;一种是用型值点处二阶导数表示的MM关系式关系式。昀常用的是m关系式。给定一组型值点(xi,yi)(i=1,2,•••,n),mi为(xi,yi)处的斜率。第i段样条函数可表示为:nixdxcxbaxyiiiii,,2,1,)(32L=+++=该段曲线的首端通过(xi-1,yi-1),斜率为mi-1,末端通过(xi,yi),斜率为mi,样条连续条件可表达为:⎪⎪⎩⎪⎪⎨⎧=′=′==−−−−iiiiiiiiiiiimxymxyyxyyxy)()()()(1111ni,,2,1L=将yi(x)代入,得:yi(x)=ai+bix+cix2+dix3(xi-1,yi-1)(xi,yi)mi-1mi(x0,y0)(xn,yn)mnm0型值点和斜率(xi+1,yi+1)mi+1yi+1(x)=ai+1+bi+1x+ci+1x2+di+1x3⎪⎪⎩⎪⎪⎨⎧=++=′=++=′=+++==+++=−−−−−−−−−iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiimxdxcbxymxdxcbxyyxdxcxbaxyyxdxcxbaxy21211132131211132)(32)()()(ni,,2,1L=,解方程组得:令1−−=iiixxh⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎨⎧−−+=+−++++−=−−+++=−+−++−=−−−−−−−−−−−−−−−−−−−−312131121113112111131211212111)(2))((3)2()2()(6)2()2()3()3()(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiihyyhmmdhxxyyhxxmxxmchxxyyhxxxmxxxmbhxxxyxxxyhxxxmxma将所求系数代入y(x)、y’(x)和y’’(x),得:32131212212121])(2[)(])(2[)()()()()()(iiiiiiiiiiiiiiiiiiihhxxxxyhhxxxxyhxxxxmhxxxxmxy+−−++−−+−−−−−=−−−−−−))(()(6)32)(()32)(()(131211211−−−−−−−−−+−+−−−+−=′iiiiiiiiiiiiiiiixxxxhyyhxxxxxmhxxxxxmxy)2()(6322322)(13121211xxxhyyhxxxmhxxxmxyiiiiiiiiiiiiii−+−+−+−−+−=′′−−−−−式中xi-1≤x≤xi(i=1,2,…,n)上述公式为。只要求解出型值点处的斜率mi(i=0,1,2,…,n),就可以应用上述公式计算插值三次样条函数的函数值、一阶导数和二阶导数。以(xi-1+hi)代替xi,代入yi(x)的表达式,并按(x-xi-1)的幂次整理成如下矩阵表达式:插值三次样条函数的基本公式插值三次样条函数的矩阵表达式:[]⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡−−−−−−−=−−−−−iiiiiiiiiiiiiiiimmyyhhhhhhhhxxxxxxxy11223322312111122123301000001)()()(1)(式中xi-1≤x≤xi(i=1,2,…,n)若令hi=1,t=x-xi-1,0≤t≤1,则得到均匀参数插值三次样条均匀参数插值三次样条。1963年美国波音公司的Ferguson用于飞机设计的参数三次方程即是均匀参数插值三次样条曲线:[]⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡′′⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡−−−−=)1()0()1()0(11221233010000011)(32ppppptttt其中P(t)表示位置矢量,P′(t)表示切矢由上述样条函数公式可以看出,构造插值三次样条时除已经给定的型值点外,还必须得到型值点处的切矢。为了计算型值点处的切矢mi(i=0,1,2,…,n),可以利用前、后二曲线段在型值点处的二阶导数连续的条件:三次样条函数的m连续性方程1,,2,1),()(1−=′′=′′++−nixyxyiiiiL代入样条函数二阶导数表达式,整理得:⎥⎦⎤⎢⎣⎡−++−+=+++++++−++++−++1111111111132iiiiiiiiiiiiiiiiiiiiihyyhhhhyyhhhmhhhmmhhh得到令⎪⎪⎪⎩⎪⎪⎪⎨⎧−=⎥⎦⎤⎢⎣⎡−+−=−=+=++−++1,,2,13111111nihyyhyyChhhiiiiiiiiiiiiiiiLμλλμλ1,,2,1211−==+++−niCmmmiiiiiiLμλ三次样条函数的m连续性方程(xi-1,yi-1)(xi,yi)(xi+1,yi+1)计入首末点的切矢,共有n+1个未知量mi(i=0,1,2,…,n),但只有n-1个方程,需要补充两个方程才能求解。指定整条曲线的首末点的端点条件,即可以用追赶法求解三对角方程组得到各型值点出的切矢。z2.4曲线曲面的表示{显式表示:y=f(x){隐式表示:f(x,y)=0{参数表示:P(t)=[x(t),y(t),z(t)]z显式或隐式表示存在的问题:z1)与坐标轴相关;z2)会出现斜率为无穷大的情形(如垂线);z3)不便于计算机编程。z用隐式表示更容易表示曲面的等值线。z隐式表示的好处z在曲线或曲面的求交中,通过隐式方程容易判断某点是否落在曲线或曲面上,而参数表示则无此优点。z曲面上参数表示并不能描述曲面间的相互位置,找到它们之间的整体关系很困难,而隐式表示则较为方便z参数表示例子:{直线{圆]1,0[,)()(121∈−+=ttPPPtP]1,0[12,11)(222∈⎥⎦⎤⎢⎣⎡++−=ttttttPz参数表示的优点:{1)以满足几何不变性的要求。{2)有更大的自由度来控制曲线、曲面的形状{3)对曲线、曲面进行变换,可直接对其参数方程进行几何变换。{4)便于处理斜率为无穷大的情形,不会因此而中断计算。{(5)便于用户把低维空间中曲线、曲面扩展到高维空间去。{(6)规格化的参数变量t∈[0,1],使其相应的几何分量是有界的,而不必用另外的参数去定义边界。{(7)易于用矢量和矩阵表示几何分量,简化了计算。2.5数据点的参数化z过三点P0、P1和P2构造参数表示的插值多项式可以有无数条,这是因为对应地参数t,在[0,1]区间中有无数种取法。即P0、P1和P2可对应不同的参数值,比如,或其中每个参数值称为节点(knot)。z对于一条插值曲线,型值点与其参数域内的节点之间有一种对应关系。对于一组有序的型值点,所确定一种参数分割,称之这组型值点的参数化。nPPP,,,10L,1,31,0210===ttt,1,21,0210===ttt],[0nttt∈z参数化常用方法有:{1.均匀参数化(等距参数化)z节点在参数轴上呈等距分布,+正常数。这种方法适用于数据点多边形各边接近相等的场合。iitt=+12.累加弦长参数化{这种参数法如实反映了型值点按弦长的分布情况,能够克服型值点按弦长分布不均匀的情况下采用均匀参数化所出现的问题。⎩⎨⎧⋅⋅⋅=Δ+==−−niPtttiii,,2,1,0110iiiPPP−=Δ+1{3.向心参数化法{{向心参数化法假设在一段曲线弧上的向心力与曲线切矢从该弧段始端至末端的转角成正比,加上一些简化假设,得到向心参数化法。此法尤其适用于非均匀型值点分布。niPtttiii,,2,1,021110⋅⋅⋅=Δ+==−−{修正弦长参数化法(Foley){弦长修正系数Ki=1。从公式可知,与前后邻弦长及相比,若当前弦长越小
本文标题:参数样条曲线和曲面
链接地址:https://www.777doc.com/doc-7243769 .html