第6章 自由曲线与曲面new_第1页
第6章 自由曲线与曲面new_第2页
第6章 自由曲线与曲面new_第3页
第6章 自由曲线与曲面new_第4页
第6章 自由曲线与曲面new_第5页
已阅读5页,还剩212页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第6章自由曲线与曲面,6.1基础知识,6.2自由曲线的数学描述,6.3自由曲面的数学描述,2,6.1基础知识一、曲线和曲面的表示形式,(1)表示形式显式:y=f(x),z=f(x,y)如y=mx+b表示直线(一个x对应一个y)一般,显式很难表示封闭、多值曲线。,3,隐式:f(x,y)=0,F(x,y,z)=0例如,ax2+2bxy+cy2+2dx+2ey+f=0圆锥曲线(x/a)2+(y/b)2+(z/c)2=1椭球面,参数式:x=x(t),y=y(t)x=x(u,v),y=y(u,v),z=z(u,v)例如,x=rcos,y=rsin表示圆,表示椭球面,4,矢量形式:,5,非参数方程的表示有以下缺点:1)与坐标轴相关;2)会出现斜率为无穷大的情况;3)非平面曲线曲面难以用常系数非参数化函数表示;4)不便于计算和编程。,(2)表示形式的比较,6,参数方程的优点:1)有更大的自由度来控制曲线曲面的形状;2)与坐标轴无关;3)便于处理斜率无穷大的问题,不会因此而中断计算;4)用参数表示曲线时,因为参数变量是规范化的,t的变化限制在0,1范围内,所以曲线总是有界的。,7,关于C0,C1,C2和G0,G1,G2的连续C0和G0连续:连接点处位置相等。G1连续:连接点处位置相等,切矢方向相同,大小不等。C1连续:连接点处位置相等,切矢方向/大小均相同。G2连续:连接点处G0、G1连续,且二阶导数方向相同,大小不等。C2连续:连接点处C0、C1连续,且二阶导数大小和方向相等。,二、曲线段间的连续性,8,9,三、曲线曲面的拟合(插值和逼近),在工程实践中,如飞机、汽车、船舶的外形设计时,常遇到由离散点来构造曲线和曲面的问题。解决这个问题的通常方法是“拟合”。拟合包含插值和逼近两类方法:,插值法(interpolation):采用完全通过原始给定的型值点构造曲线、曲面并达到某些设计要求的方法。,给定的一组有序数据点,可以从某个形状测量得到,也可以是设计员计算给出;顺序通过这些点,构造曲线/曲面。,10,逼近法(approximation):采用相对贴近原始给定的型值点构造曲线、曲面并达到.设计要求的方法。,如果测量所得或设计员给出的数据点本身就很粗糙,要求构造一条曲线严格通过给定的一组数据点就没什么意义。这时,要求所构造的曲线在某种意义下最为贴近给定的数据点。,插值法:三次样条(参数)曲线、双三次coons曲面。逼近法:Bezier曲线/曲面、B样条曲线/曲面、NURBS曲线/曲面等。,11,6.2自由曲线的数学描述一、三次样条曲线,给定(n+1)个点Pi(i=0,1,n),要找出一条过这些型值点的曲线C(u),有两种极端情况:1)每对点Pi,PI+1之间的线性插值。问题是只能保证各个曲线段连续,整条曲线在型值点处出现拐折现象。,为什么用“三次”?,12,2)使用n次拉格朗日多项式插值。当Pi的点数n越多,插值多项式的次数越高,曲线会引起激烈波动、振荡,甚至扭曲,且计算量很大。,另外,单一的低次多项式曲线又难以用来描述复杂形状的曲线。,唯一的选择:采用分段的低次多项式插值生成低次曲线段,并在满足一定的连接条件下逐段拼接起来。,大多数应用发现,三次是一个好的折衷。,13,三次样条函数就是一种分段三次多项式插值,它不但能保证曲线上斜率连续(一阶导数连续)变化,而且也能保证曲率连续(二阶连续)变化。这对飞机、汽车、船舶的外形来说,已能满足要求了。,14,1.三次样条函数力学背景,数学上的三次样条来自生产实践中放样员的样条。所谓的样条是一根富有弹性的均匀的细木条或塑料条。放样员先将型值点准确地点在图板上,用压铁强迫模线通过这些型值点,再适当调整这些压铁,让样条的形态发生变化,直至取得满意的形状,才沿着样条画出所需的曲线。,15,如果把样条看成弹性细梁,压铁看成作用在这梁的某些点上的集中载荷,可把上述画模线的过程在力学上抽象为:求弹性细梁在外加集中载荷作用下产生的弯曲变形。切出两相邻压铁间的一段梁看,只在梁的两端有集中力作用,故弯矩在这段梁内是线性函数。,与材料和形状有关的常数,16,M(x)是线性函数,函数Y(x)是x的三次多项式,在整个梁上Y(x)是分段三次函数,但它处处二阶可导。这一力学背景,导致了数学上三次样条函数概念的建立。,样条特点:(1)样条本身是连续的整体,相当于函数是连续的;(2)样条左右两段在压铁处的斜率相同,相当于函数是一阶连续的。(3)样条左右两段在压铁处的曲率相同,相当于函数是二阶连续的。,17,2.三次样条函数定义,定义:在区间x0,xn上给定一个分割:x0x1xn-1xn插值条件为:,若有函数y(x)适合:1)y(xi)=yi(i=0,1,n);2)y(x)在全区间x0,xn上二次连续可导;3)在每个子区间xi-1,xi(i=1,n)上是x的三次多项式。则称y(x)是关于已知插值条件的三次样条函数。由样条函数构成的曲线称为样条曲线。,18,1)三次样条曲线段,以自变量u表示的三次曲线方程为:y(u)=a0+a1u+a2u2+a3u3曲线的始末端点通过一对已知位置矢量y0和y1,已知切矢(对参数u求导)y0和y1,则有方程:,19,解出a0,a1,a2,a3,带入,整理后得到:,20,(6-1),其中:,(6-2),21,矩阵形式:,其中:,F0、F1、G0、G1称为Hermite基函数。作用:控制曲线段两端点的位置矢量和一价导矢对曲线形状的影响。,(6-3),22,2)三次样条曲线之一,现在解决区间xi-1,xi上带一阶导数的插值问题。设对应于区间两端的函数值与一阶导数(对x)值如图。从u0,1xxi-1,xi:u=(x-xi-1)/hi,(hi=xi-xi-1)故,yu=yxhi,对应于xxi-1,xi,仿式(6-3),第i段曲线的表达式为:,(6-4),(i=1,2,.,n),(用型值点处一阶导数表示),M是对x的导数,23,(6-4)式确定的函数y(x),本身及其一阶导数y(x)在x0,xn上的连续性,是由各段的插值条件保证的,不论m0,m1,mn取什么值,y(x)、y(x)总是连续的。但任意地选取m0,m1,mn就不能保证y”(x)在x0,xn上连续。为保证各内节点处的y”(x)也连续,mi必须满足一定条件。,24,将式(6-4)对x求导两次,得y”i(x)为u的函数。,则让:第i段xi-1,xi曲线段的末点(在xi处,此点u=1),与第i+1段xi,xi+1曲线段的始点(在xi处,此点u=0),25,的二阶导数连续:y”i(xi)=y”i+1(xi)整理后得m关系式:,imi-1+2mi+imi+1=ci(i=1,2,.,n-1)(6-5),26,式(6-4)、(6-5)包含m0,m1,,mn共n+1个未知量,对应整条曲线的x0、x1,xn的n+1型值点,式(6-5)包含n-1个方程个数,还不足以完全确定这些mi,须添加两个条件。,这两个条件通常根据对边界节点x0与xn处的附加要求来提供,故称为端点条件。常见有以下几种:,(1)已知曲线两端点处的m0与mn。(6-5)式成为关于n-1个未知量m1mn-1的n-1个线性方程。第一个方程为:2m1+1m2=c1-1m0第n-1个方程为:n-1mn-2+2mn-1=cn-1-n-1mn,27,(2)给定两端点的二阶导数M0、Mn。,得:2m0+m1=C0mn-1+2mn=Cn,i0代入,in代入,28,在求得所有mi后,分段三次曲线即可由(6-4)确定。整条三次样条曲线的表达式为:y(x)=yi(x)(i=1,2,.,n),(3)特别当M0=0或Mn=0时,称为自由端点条件。此时端点为切点,曲率半径无限大。例如,在曲线端点出现拐点或与一直线相切时。,29,与2)方法类似,先解决u0,1带二阶导数的插值问题,推广到整个x0,xn区间。曲线段两端点四个已知条件:y0,y1,y0,y”1。构作三次曲线段方程为:,y(u)=y0F0(u)+y1F1(u)+y”0G0(u)+y”1G1(u),(6-6),F0(u)=1-uG0(u)=-u(u-1)(u-2)/6F1(u)=uG1(u)=u(u-1)(u+1)/6,(6-7),3)三次样条曲线之二,(用型值点处二阶导数表示),30,在区间xi-1,xi上带二阶导数的插值。设对应于xxi-1,xi区间两端点的函数值与二阶导数(对x)值分别为yi-1,yi,Mi-1,Mi。则该曲线段的表达式为:,(6-8),它适合指定的带二阶导数的插值条件,保证了函数及其二阶导数在x0,xn上的连续性。但为了使各内节点处的一阶导数也连续,则Mi必须适合M关系式。,(i=1,2,.,n),31,根据:yi(xi)|u=1=yi+1(xi)|u=0,得M关系式:,iMi-1+2Mi+iMi+1=di(6-9),它是一个有n-1个方程的线性方程组,含n+1个未知数M0,M1,Mn,为了完全确定它们,必须加上两个端点条件。常用的端点条件有:,32,1)两端点二阶导数值M0、Mn。当M1=Mn=0时,为自由端点条件。2)两端点二阶导数值m0、mn已知。,求得Mi后,分段三次曲线可由式(6-8)确定,整条三次样条曲线可由y(x)=yi(x)(i=1,2,n)表示。,33,3.三次样条曲线的局限性,1)大斜率曲线不能处理,受样条函数力学背景假设(dy/dx1)限制,不适合大挠度情况。与坐标系的选取有关。,2)多值曲线不能处理,受样条函数定义限制,x与y须单值对应。与坐标系的选取有关。,3)无局部性,从m-关系式、M-关系式可知。,34,4.参数样条曲线累加弦长三次参数样条曲线,给定一组型值点Pi(xi,yi,zi),(i=0,1,.,n)构造三个关于参数u的插值三次样条函数:x=x(u),y=y(u),z=z(u)它们分别插值于点集(ui,xi)、(ui,yi)、(ui,zi),i=0,1,n。将三者合并,形成三次参数样条曲线r(u)=x(u),y(u),z(u),35,累加弦长三次参数样条曲线定义:给定型值点pi(xi,yi,zi),i=0,1,n,累加弦长为:s0=0sk=lk=(xi-xi-1)2+(yi-yi-1)2+(zi-zi-1)2,(k=1,2,.,n),i=1,k,i=1,k,二阶连续可微,都是参数s的分段三次多项式。所得的参数样条曲线r(s)=x(s),y(s),z(s)也是二阶连续的,具有连续的斜率、曲率。,由此得数据表:,据表可构造三个插值三次样条函数x=x(s),y=y(s),z=z(s),它们在区间s0,sn上,36,举例:已知三个位置矢量P0(0,0)、P1(1,2)、P2(3,2),端点条件:自由端点。确定过三点的三次样条曲线。,提示:M0=M2=Mx,My=0,0,Mx=,My=,用M关系式求出M1;,用(6-8)式写出x=x(s),y=y(s),iMi-1+2Mi+iMi+1=di(6-9),参数用累加弦长确定,37,二、Bezier曲线1.Bezier曲线的定义,一条Bezier曲线由两个端点和若干个不在曲线上但能够决定曲线形状的点确定。下图表示一条三次Bezier曲线由两个端点V0、V3和另两个不在曲线上的点V1、V2确定。,V0、V1、V2、V3构成了来定义曲线的特征多边形。,38,一般,n次Bezier曲线由n+1个顶点构成的特征多边形确定。,Bezier曲线的表达式:由特征多边形顶点的位置矢量与伯恩斯坦基函数线性组合。,(6-10),i=0,1,2,.,n,39,一次Bezier曲线:n=1,两个控制顶点,是一条直线。r(u)=(1-u)V0+uV1,,u,u,40,三次Bezier曲线,n=3,有四个控制顶点。B3,0(t)=1-3u+3u2-u3B3,1(t)=3u-6u2+3u3B3,2(t)=3u2-3u3B3,3(t)=u3,1000-33003-630-13-31,u,(6-11),(6-12),MBE,r(u)=1uu2u3,41,2.Bezier曲线的几何性质,1)端点性质位置矢量:u=0时,r(0)=V0,u=1时,r(1)=Vn切矢量:r(0)=n(V1-V0),r(1)=n(Vn-Vn-1)二阶导矢:r(0)=n(n-1)(V2-2V1+V0),r(1)=n(n-1)(Vn-2Vn-1+Vn-2),Bezier曲线的起点和终点分别是特征多边形的始、末顶点;曲线在起点和终点处分别与特征多边形的第一和最后一条边相切,切矢量的模长为第一和最后边长的n倍。曲线在两端点处的k阶导矢只与它最近的(k+1)个顶点有关。,42,2)对称性特征多边形的顶点位置不变,仅仅序号相反,Bezier曲线的形状不变,仅方向相反。,43,3)凸包性,4)几何不变性Bezier曲线的形状和位置,仅与特征多边形的顶点位置有关,与坐标系的选择无关。,44,5)变差减小性若特征多边形是一个平面图形,那么平面内的任意直线,与r(u)的交点个数,不多于与特征多边形的交点个数。,45,3.Bezier曲线的几何作图法及其分割,46,B点运动,保持这个比例不变,47,V01,V11,V21,V02,V12,V03,分割过程:,V0V1V2V3,V00V10V20V30,V01V11V21,V02V12,V03,分割递推算法:,48,voidbez_to_points(degree,npoints,coeff,points)intdegree,npoints;floatcoeff,points;floatt,delt;inti;floatdecas();delt=1.0/(float)npoints;/*steplength*/t=0.0;for(i=0;i=npoints;i+)pointsi=decas(degree,coeff,t);t=t+delt;,49,floatdecas(degree,coeff,t)floatcoeff;floatt;intdegree;intr,i;floatt1;floatcoeffa10;t1=1.0-t;for(i=0;i=degree;i+)coeffai=coeffi;for(r=1;r=degree;r+)for(i=0;i=degree-r;i+),50,coeffai=t1*coeffai+t*coeffai+1;return(coeffa0);,51,4.Bezier曲线的拼接,以三次Bezier曲线为例。对于形状比较复杂的曲线,只用一段三次Bezier曲线描述就不够了。工程上往往用分段Bezier样条曲线描述。将分段的Bezier曲线连接起来构成三次Bezier样条曲线,其关键问题是如何保证连接处具有G1及G2连续性。,52,1)位置连续,r(2)(u2=0)=r(1)(u1=1)V0(2)=V3(1),2)斜率连续,r(2)(0)=r(1)(1)V1(2)=(V3(1)-V2(1)+V0(2),即,要求三顶点(V2(1)、V3(1)=V0(2)、V1(2)共线。,53,3)曲率连续,r(2)(0)=2r(1)(1)+r(1)(1),V2(2)-V3(1)=(2+2+/2)(V3(1)-V2(1)-2(V2(1)-V1(1),表明V1(1)、V2(1)、V3(1)=V0(2)、V1(2)、V2(2)五点共面。,54,5.反算Bezier曲线特征点,给定n+1个型值点Pi(i=0,1,.,n),要求构造一条Bezier曲线通过这些点。,先求过Pi的的特征多边形顶点Vi(i=0,1,.,n)。取参数u=i/n代入(6-10)式,与点Pi对应,反求Vi。,55,三、均匀B样条曲线,保留Bezier方法顶点和基函数线性组合带来的直观、方便、易修改的优点,仍然采用控制顶点定义曲线。B样条与Bezier曲线比较,区别在于:Bezier曲线的次数等于控制顶点数1,但曲线与特征多边形仍逼近不够;B样条曲线的次数与控制顶点的数量无关,曲线与特征多边形相当接近。Bezier曲线缺乏局部性质,修改一个顶点将影响整条曲线;B样条曲线具有局部性质。,56,B样条曲线的定义:给定n+1个顶点V0,V1,Vn,确定的B样条曲线其中,Ni,M是B样条基函数。,r(u)=,57,1.三次B样条曲线,1)三次B样条基函数,N0,4(u)N1,4(u)N2,4(u)N3,4(u)=1uu2u3MB,(6-13),u,先给出工程上常用的三次B样条基函数的矩阵表达式:,58,2)三次B样条曲线段,u,(6-14),端点性质:,ri(0)=Vi+1+(Vi+Vi+2)Vi+1ri(1)=Vi+2+(Vi+1+Vi+3)Vi+2,59,ri(0)=Vi+1+(Vi+Vi+2)Vi+1,60,ri(0)=(Vi+2Vi)ri(1)=(Vi+3Vi+1)ri”(0)=(Vi+2Vi+1)+(ViVi+1)ri”(1)=(Vi+3Vi+2)+(Vi+1Vi+2),(6-15),61,62,3)三次B样条曲线,当特征多边形的顶点超过四个时,每增加一个顶点,相应地增加一段样条曲线。因为特征多边形中每四个相邻的顶点按(6-14)式定义一段曲线。,u,,,(i=0,1,.,n-2),(6-15),63,ri(u),ri+1(u),u,64,2.B样条基函数定义,三次B样条基函数的Clark方法,已知n+2个顺序排列的位置矢量:V0、V1、.、Vn+1设Nj,4(u)(j=0,1,2,3)为u的三次多项式:Nj,4(u)=Aju3+Bju2+Cju+Dj,j=0,1,2,3(有16个系数),ri(u)=N0,4(u)Vi+N1,4(u)Vi+1+N2,4(u)Vi+2+N3,4(u)Vi+3,(6-16),(i=0,1,.,n-2;u0,1),(根据曲线位置、斜率、曲率连续推导),65,要求曲线段在连接处位置、斜率、曲率连续,即,ri(1)=ri+1(0)ri(1)=ri+1(0)ri”(1)=ri+1”(0),根据位置矢量Vi+j(j=0,1,2,3,4)的系数相等条件,每式有五个方程,共有15个方程,还差一个方程。,当Vi=Vi+1=Vi+2=Vi+3时,ri(u)=Vi(曲线退化为一点):,N0,4(u)+N1,4(u)+N2,4(u)+N3,4(u)1,66,解方程组得到四个三次多项式Nj,4(u)(j=0,1,2,3):,67,2)递推定义,定义:在参数轴x区间a,b上取分割a=x0x11、整数),M阶B样条基函数是一个只在M个子区间xi,xi+M非零的分段(M1m)次多项式,具有直到M2阶的连续导数。,1阶(0次)B样条基:,i,1,69,2阶(1次)B样条基:,代入(6-17):,令xi,xi+1内,u=x-xi:,Ni,2(u)=u,Ni,2(u)=1-u,i,1,70,3阶(2次)B样条基:,Ni,3(x)=,0,xixxi+1,xi+1xxi+2,xixi,xi+3,xi+2xxi+3,71,在(xixxi+1)区间,令u=x-xi,在(xi+1xxi+2)区间,令u=x-xi+1,在(xi+2xxi+3)区间,令u=x-xi+2,72,Ni,4(x)=,4阶(3次)B样条基:,0,xixxi+1,xi+1xxi+2,xi+2xxi+3,xi+3x,xi+4,xixi,xi+4,73,在(xixxi+1)区间,令u=x-xi,在(xi+1xxi+2)区间,令u=x-xi+1,在(xi+2xxi+3)区间,令u=x-xi+2,在(xi+3x,xi+4)区间,令u=x-xi+3,74,3.B样条曲线几何性质,1)端点性质,(以三次B样条曲线为例),2)直观性,形状决定于B特征多边形,逼近度更好。,3)局部性,改变特征多边形的一顶点,只对相邻的四条曲线段产生影响。,4)凸包性5)对称性,6)几何不变性7)变差减小性,75,4.基于顶点的三次B样条曲线退化情况,1)三顶点共线,起点:拐点,切点,2)四顶点共线,起点,末点,76,3)两顶点重合,端点,4)三顶点重合,V(3),V(2),77,设计时,要求:构造一段直线,则曲线与特征多边形相切,则曲线上形成尖点,则,四顶点共线,三顶点共线或两顶点重合,三顶点重合,78,始点,末点,直线段,直线段,5.用重顶点端点条件控制曲线首末端点,79,能否使B样条曲线的端点与首末顶点重合?,利用重节点端点技术,实质是利用重节点条件改变B样条基函数。当节点重复ki次,曲线在该节点处的可微性下降为,重节点对B样条曲线的影响:1)在B样条曲线定义域内的重节点,重复度每增加1,曲线段数减少1,样条曲线在该重节点处的可微性降低1;2)当端节点重复度为k时,k次B样条曲线的端点将与相应的控制多边形的端点相重,并在端点处与控制多边形相切;3)当在曲线定义域内有重复度为k的节点时,k次B样条曲线插值于相应的控制顶点;,80,这时的节点矢量(x0,x1,xn+M)中两端节点具有重复度(k+1=M),所有内节点为均匀分布,所构造的B样条曲线称为准均匀B样条曲线。,4)当端节点重复度为k1时,k次B样条曲线就具有和k次贝齐尔曲线相同的端点几何性质;5)k次B样条曲线若在定义域内相邻的两节点都具有重复度k。可以生成在该节点区间上那段B样条曲线的贝齐尔点;6)若端节点重复度为k1的k次B样条曲线的定义域仅有一个非零节点区间,则所定义的该k次B样条曲线就是k次贝齐尔曲线。,81,(1)二次准均匀B样条曲线(k=2),用节点矢量X=(x0,x0,x0,x1,xn,xn+1,xn+1,xn+1)构造基函数(曲线段数n3):,首端处:,82,末端处:,83,令区间xj,xj+1内x-xj=u,则由Nj,3(x)改写为Nj,3(u):,第一段B样条曲线,在x0,x1上,j=-2,中间各段B样条曲线,在x1,x2、.、xn-1,xn上,j=-1,0,1,.,n-3,(),(),84,最后一段B样条曲线,在xn,xn-1上,j=n-2,(),将()、()式代入:,(i=0,1,.,n-2),85,得二次B样条曲线首、末端的位置和切矢:,r(0)=V0,r(0)=2(V1-V0)r(1)=Vn+2,r(1)=2(Vn+2-Vn+1),即,曲线过首、末顶点,与首、末边相切。,虚线为均匀B样条曲线,实线为准均匀B样条曲线,86,6.三次参数曲线段的三种等价表示,87,Ferguson曲线:,r(u)=1uu2u3MC,r(0)r(1)r(0)r(1),88,r(u)=1uu2u3MBE,B0B1B2B3,Bezier曲线:,89,B样条曲线:,90,均匀B-Spline曲线的特点:节点等距分布,计算效率高,一般情况下可获满意效果。存在问题:1.不能贴切反映控制顶点的分布特点;2.当型值点分布不均匀时,难以获得理想的插值曲线。非均匀B样条曲线可解决这一问题。,四、非均匀B-Spline曲线,91,B样条的递推定义具有普遍意义,即使是计算非均匀B样条基函数,仍可由递推定义式来计算各幂次的B样基函数。,1.非均匀基B样条基函数,给定控制顶点Vi,i0,1,n,欲定义一条k次非均匀B样条曲线,还必须确定它的节点矢量Uu0,u1,un+k+1中具体的节点值。对于开曲线一般两端点取重复度k1,以便具有贝齐尔曲线的端点几何性质,且通常将曲线的定义域取成规范参数域,,92,2.节点矢量的确定,已知:控制顶点Vi,(i=0,1,n)节点矢量U=u0,u1,.,un+k+1,确定节点矢量方法采用Riesenfeld方法:节点的分布与各B样条曲线段的长度直接相关。把特征多边形看作为样条曲线的外接多边形,使曲线的分段连接点与特征多边形的顶点或边对应起来,然后把它展直作为参数轴(并规范化),得到节点矢量(参数序列)。,93,1)偶次B样条曲线的节点矢量,二次B样条曲线,二次B样条曲线的节点矢量为:,n-k个节点,两边除去k/2条边,后另外的边的中点。,94,节点矢量为:,四次B样条曲线,95,2)奇次B样条曲线节点矢量,三次B样条曲线的节点矢量为:,五次B样条曲线的节点矢量为:,n-k个节点,两边除去(k1)/2条边,后另外的nk个控制顶点。,96,两种曲线相比较,非均匀B样条曲线更贴近特征多边形,即更容易控制曲线形状。,非均匀B样条曲线,均匀B样条曲线,若多边形边长变化不显著,两者很接近。,97,结论:1.当特征多边形边长变化不大(邻边长比值3)时,两者接近。2.当特征多边形边长变化较大时,非均匀B样条曲线更能反映多边形特点。,3.在非均匀B样条曲线情况下,顶点位置确定了节点矢量,进而决定了基函数,故修改一个顶点的位置将影响整条曲线的形状。但各段影响程度不一。,4.对于三次非均匀B样条曲线,四顶点共线时,曲线内也能嵌入直线段,但其起止点不易直观确定。5.非均匀B样条曲线的计算量较大。,98,3、非均匀B样条曲线及其插值,1)非均匀B样条曲线,德布尔算法:,99,在某个非零节点区间,上的一组k次B样条基中仅有k1个非零的基函数:,这些B样条基由下面节点序列完全确定,100,德布尔算法,给定控制顶点di,i0,1,2n,k阶及确定节点矢量Ut0,t1,tn+k后,就定义了一条k阶曲线。求曲线定义域内以参数,计算该B样条曲线上对应一点C(u):,101,102,bsp1_to_point(degree,l,coeff,knot,dense,points,point_num)floatcoeff,knot,points;intdegree,l,dense,*point_num;inti,ii,kk;floatdeboor();*point_num=0;for(i=degree-1;iknoti)for(ii=0;iidense;ii+),103,u=knoti+ii*(knoti+1-knoti)/dense;points*point_num=deboor(degree,coeff,knot,u,i);*point_num=(*point_num)+1;floatdeboor(degree,coeff,knot,u,i)floatcoeff,knot;floatu;intdegree,i;intk,j,104,floatt1,t2;floatcoeffa30;for(j=i-degree+1;j=i-degree+k+1;j-)t1=(knotj+degree-k-u)/(knotj+degree-k-knotj-1);t2=1.0-t1;coeffaj=t1*coeffaj-1+t2*coeffaj;return(coeffai+1);,105,2)三次非均匀B样条曲线的插值(反算),方法:,2、根据节点矢量上相关的节点集,分别计算基函数;,3、求得反算多边形顶点方程组;,4、加端点条件,解方程组控制顶点(这与三次均匀B样条曲线反算相似)。,1、根据给定的型值点,构造节点矢量;,106,插值特点:,1、当型值点间距变化较均匀时(1:2:4:5:6),用均匀和非均匀B样条曲线插值计算,所得的特征多边形和插值曲线两者均极为相似,差异不大,,均匀B样条曲线,非均匀B样条曲线,107,2、当型值点分布很不均匀时,两者差异明显。,均匀B样条曲线,产生拐点,非均匀B样条曲线,保凸,型值点间距比1:1:6:1:1,108,型值点间距比1:7:1:7:1,非均匀B样条曲线,保凸,均匀B样条曲线,产生拐点,109,五、有理B样条曲线,在自由曲线设计中,经常遇到传统的圆锥曲线,但无论是均匀的还是非均匀的B样条曲线都不能对其作精确表示,只有用有理B样条曲线才能作精确表示。,有理B样条方法可以对解析曲线/面和自由曲线/曲面作统一地表达。,110,其中,i为权因子,亦称齐次坐标,有理B样条曲线的表示:,111,1)构造具有权因子的顶点,2)在oxyw坐标系下得到一条非有理B样条曲线,3)把,112,1.二次有理B样条曲线,1)表达式,113,2)几何特性,114,0,1,2为转化为Bezier曲线后的权因子,C为常数。C为常数时,曲线形状唯一确定。,3)权因子对曲线形状的影响,权因子作用:调节曲线形状和控制顶点之间的关系。正权因子将曲线引向顶点;负权因子对曲线起排斥作用。在二次均匀B样条曲线中,每个顶点影响三段曲线。在有理B样条曲线中,改变一个顶点的权因子只影响两段曲线。,115,修改权因子k-1/k后的曲线,116,六、NURBS曲线,如果要用统一的形式表示一条由直线、圆锥曲线和自由曲线构造的复合曲线时,则必须用非均匀有理B样条曲线表达方法。,117,1.定义与性质,1)定义,NURBS曲线为一分段的矢值有理多项式函数,表达式为:,Bi,k(u)为k次B样条基函数,等同于Ni,M(u)表示的(6-17)式,其中M=k+1。,118,递推式定义:,ui(i=0,1,m)为节点,由其形成节点矢量U=u0,u1,um,当节点数为(m+1),幂次为k,控制顶点数为(n+1)时,m=n+k+1。,119,即,节点矢量两端各有k+1个相同的节点,使曲线通过控制多边形首、末端点并与首、末两边相切。,对于非周期的B样条,节点矢量为,120,2)性质由有理基函数性质推得:,NURBS曲线(曲面)覆盖了多项式B样条(即当全部权因子=1时),也覆盖了有理的B样条曲线(曲面)。当节点矢量仅由两端的(k+1)重节点构成时,NURBS曲线(曲面)退化为有理Bezier曲线(曲面)。,121,2.NURBS曲线(曲面)具有多项式B样条方法所具有的一切特征:,线性变换的不变性;若无内重节点,则K次B样条是k-1阶可微的;对控制顶点(网格)多边形的逼近具有局部性;B样条曲线(曲面)包含在控制顶点所形成的凸包内;具有变差减小性质。,122,3)特点及其应用,用统一的表达式同时精确表示标准的解析形体(如圆锥曲线、旋转面等)和自由曲线/曲面。修改曲线/曲面形状时,既可借助调整控制顶点,又可利用权因子,所以有较大灵活性。与多项式B样条一样,NURBS方法的计算也是稳定的。4.NURBS曲线/曲面在线性变换(缩小、旋转、平移、剪切、平行与透视投影等)下是几何不变的。,优点:,123,缺点:,定义解析曲线/曲面时,需额外的存储空间。,例如:定义一整圆。常规方法:仅7个数(圆心x0,y0,z0),圆所在平面法矢(nx,ny,nz)和半径R;NURBS方法:以外切三角形的7个控制顶点定义时,则需要38个数(即节点矢量的10节点+顶点坐标(x,y,z,w)共28个数。,124,权因子的应用虽提供设计灵活性,也对设计人员和用户提出了更高的要求。NURBS曲面求交计算困难。,125,2.NURBS曲线的基本算法,1)NURBS曲线的求值直接由定义表达式求取与参数u对应的点,算法稳定可靠。,126,2)NURBS曲线求导,其关键是对基函数求导:Bi,0(u)=0,r(u)=,iViBi,k(u),i=0,n,iBi,k(u),i=0,n,127,可见,基函数的导数也是由递推方式定义。,128,3.NURBS曲线的应用,1)用二次NURBS曲线表示圆弧,三个控制顶点的NURBS曲线,若U0,0,0,1,1,1,则二次NURBS曲线变成:,可以证明上式是圆锥曲线的方程,其中,CSF1双曲线,表示圆的条件:V0V1和V1V2是等腰三角形的两个腰,w0w21,V0,V1,V2,f,e,w1e/f,w21,w01,W1是cos(V1V0V2),129,对于圆心角大于180度的,分段采用上述方法,利用从节点将几段圆弧连接起来。内部重节点用二重节点。1/i,i-1/i(i为小圆弧的段数),V0,V1,V2,V3,V4,i2节点:0,0,0,1/2,1/2,1,1,1,V5,V6,V7,V8,i4节点:0,0,0,1/4,1/4,2/4,2/4,3/4,3/4,1,1,1,130,2)复杂曲线的NURBS表示,对同时存在直线段、圆弧段、三次自由曲线段的曲线,用三次NURBS曲线统一表示的步骤:,用一次、二次NURBS曲线分别准确表示各直线段、圆弧段,后将其升阶为三次NURBS曲线;,计算整条曲线的节点矢量;,计算三次曲线段的边界条件;,用三次NURBS曲线插值各自由曲线段;,131,对求出的控制顶点及其权因子按对应型值点间的相互关系排序;,由计算得到的控制顶点、权因子、节点矢量定义一条三次NURBS曲线。,在与直线段、圆弧段对应的各节点处,取为三重节点;,132,直线,圆弧,自由曲线,组合曲线,133,多边形顶点为NURBS曲线的控制顶点,统一的三次NURBS曲线,134,6.3自由曲面的数学描述一.孔斯曲面与双三次曲面,Coons于1964年提出了由四条边界曲线定义曲面片,用曲面片光滑拼接一张曲面(只要在曲面片间相邻接的边界上,使位置、斜率、曲率、,甚至于所期望的高阶偏导矢相匹配),就能保证整张曲面具有足够的光滑性。,135,曲面用矢量方程表示:r(u,w)=x(u,w),y(u,w),z(u,w)u,w0,1,参数u,w的变化区域是uw平面上的单位正方形域。,一旦参数u与w在uw平面的单位正方形域0,10,1中变化,则对应到空间,即形成一张曲面片。,136,参数域点向曲面片点的映射,137,1.曲面基本参数,1)四条边界线,r(u,0),r(u,1)r(0,w),r(1,w),r(u,1),r(u,0),r(0,w),r(1,w),u,w,2)四个角点的位置矢量r(0,0),r(0,1),r(1,0),r(1,1),r(0,0),r(1,0),r(0,1),r(1,1),138,3)四个角点的切矢和扭矢,r(u,1),r(u,0),r(0,w),r(1,w),u,w,r(0,0),r(1,0),r(0,1),r(1,1),对r(u,w),将w看作常数u变化时,对u求偏导,就是u线上的切矢ru(u,w),ru(u,w)=,u,r(u,w),同理,w线上的切矢:rw(u,w)=,w,r(u,w),r(u,w),rw(u,w),ru(u,w),139,ru(u,1)、rw(0,w)、rw(1,w)均为边界曲线上的切矢。,rw(u,1)、ru(0,w)、ru(1,w)均为边界曲线的跨界斜率。,140,r(u,1),r(u,0),r(0,w),r(1,w),u,w,r(0,0),r(1,0),r(0,1),r(1,1),r(u,w),rw(u,0),ru(1,w),141,u,r(u,w),u=0w=0,w,r(u,w),u=0w=0,称为角点r(0,0)的u向、w向切矢,ru(0,0)=,rw(0,0)=,u,r(u,w),u=1w=0,w,r(u,w),u=1w=0,称为角点r(1,0)的u向、w向切矢,ru(1,0)=,rw(1,0)=,142,u,r(u,w),u=0w=1,w,r(u,w),u=0w=1,称为角点r(0,1)的u向、w向切矢,ru(0,1)=,rw(0,1)=,u,r(u,w),u=1w=1,w,r(u,w),u=1w=1,称为角点r(1,1)的u向、w向切矢,ru(1,1)=,rw(1,1)=,143,rw(0,0),ru(0,0),r(u,1),r(u,0),r(0,w),r(1,w),u,w,r(0,0),r(1,0),r(0,1),r(1,1),r(u,w),rw(1,1),ru(1,1),144,u,w,145,146,2.具有给定边界的孔斯曲面,1)曲面片,给出两组边界:r(0,w)、r(1,w)和r(u,0)、r(u,1),(0u,w1)要求构造这四条边界所围的曲面片方程r(u,w),147,先构造具有边界r(0,w)与r(1,w)的曲面片r1(u,w),r1(u,w)=F0(u)r(0,w)+F1(u)r(1,w),,当u=0时,r1(u,w)=r(0,w),当u=1时,r1(u,w)=r(1,w),,若令F0(u)=1-u,F1(u)=u,则r1(u,w)为两条边界的线性插值,得直纹曲面,所以,混合函数不唯一。,混合函数为F0(u)、F1(u),r(0,w),r(1,w),r1(u,w),148,再构造具有边界r(u,0)、r(u,1)的曲面片r2(u,w),r2(u,w)=F0(w)r(u,0)+F1(w)r(u,1),混合函数为F0(w),F1(w),构造具有四条边界的曲线片,是否就是(r1+r2)的结果?,当w=0、w=1时,r1+r2对应边界是:,149,w=0:r1(u,0)+r2(u,0)=r(u,0)+F0(u)r(0,0)+F1(u)r(1,0),w=1:r1(u,1)+r2(u,1)=r(u,1)+F0(u)r(0,1)+F1(u)r(1,1),多余项,为了去掉多余项,构造r3曲面片:使之当w=0和w=1时,具有对应的边界:,F0(u)r(0,0)+F1(u)r(1,0)F0(u)r(0,1)+F1(u)r(1,1),150,r3=F0(w)F0(u)r(0,0)+F1(u)r(1,0)+F1(w)F0(u)r(0,1)+F1(u)r(1,1),r(u,w)=r1+r2-r3为所求曲面片,(6-18),151,u=0,1;w=0,1验证,将得到正确的边界信息。,由此构造出来的曲面片称为简单曲面片(基本曲面),除了给出的四条边界以外,再没别的限制,所以说,简单曲面片是相当一般、相当灵活的一类曲面。,改造为孔斯曲面表达式,(6-19),边界信息方阵,152,2)曲面片拼接,式(6-18)的两边对w求偏导,令w=0,且有混合函数性质:F0(0)=F0(0)=0,,有:rw(u,0)=F0(u)rw(0,0)+F1(u)rw(1,0),这是r(u,0)上任一点处的跨界斜率,可见等于这条边界的两个端点上的跨界斜率的线性组合,而与边界曲线r(u,0)本身的形状无关。,153,类似地,其它三条边界的跨界斜率为:rw(u,1)=F0(u)rw(0,1)+F1(u)rw(1,1)ru(0,w)=F0(w)ru(0,0)+F1(w)ru(0,1)ru(1,w)=F0(w)ru(1,0)+F1(w)ru(1,1),简单曲面片之间的拼接问题:,两曲面片r(1)、r(2)有一公共边,所以,r(1)(u,1)=r(2)(u,0)(0u1),为了保证两曲面拼接光滑,要求它们的跨界切矢共线(保证跨界斜率相协调),154,设公共边界的两端点上,两曲面片的两对边界分别相切,即切矢共线:,rw(1)(0,1)=rw(2)(0,0)rw(1)(1,1)=rw(2)(1,0),于是有:rw(1)(u,1)=F0(u)rw(1)(0,1)+F1(u)rw(1)(1,1)=F0(u)rw(2)(0,0)+F1(u)rw(2)(1,0)=rw(2)(u,0),即,表明公共边界上各点的跨界切矢共线,故光滑。,155,3、具有给定边界及其跨界斜率的孔斯曲面,四条边界曲线为:r(u,0),r(u,1),r(0,w),r(1,w);四条边界上跨界斜率为:rw(u,0),rw(u,1),ru(0,w),ru(1,w),156,构造“以r(0,w)、r(1,w)为边界,以ru(0,w)、ru(1,w)为两边界上的跨界斜率”的曲面片,构造“以r(u,0)、r(u,1)为边界,以rw(u,0)、rw(u,1)为两边界上的跨界斜率”曲面片,157,用角点信息构造r3,把相同的插值方法应用于u向、w向两个方向,,158,r1+r2,减去r3,构造新的曲面片,159,(6-20),边界信息方阵,160,4、双三次曲面,双三次曲面片的基函数F0(u)=2u3-3u2+1F1(u)=-2u3+3u2G0(u)=u3-2u2+uG1(u)=u3-u2,双三次曲面的形成可看成一条动的三次样条曲线r(u,w)沿w向在整个矩形域上扫描而成。,r(u,w),ru(1,w),ru(0,w),仿照带一阶导数的插值曲线,把它当成曲面的u线:,161,这条u线作为“动母线”,在两条“基线”r(0,w)、r(1,w)上滑动,让w从0变到1,这样就得到了全部u线,也就是扫出了整张曲面片。,两端点矢量,两W线的跨界斜率,(6-21),162,其中,两端点矢量:,163,两W线的跨界斜率:,164,代入式(6-21)得曲面方程:,r(u,w)=F0(u)F1(u)G0(u)G1(u),(6-22),角点信息方阵C,165,令:U=1uu2u3W=1ww2w3,r(u,w)=UMcCMcTWT,分量为Cx,Cy,Cz,(6-22),166,一般所提的“孔斯曲面”,多半指这种双三次曲面。实际上它只是几类孔斯曲面的一种特定情况下的特殊形式。,角点信息方阵C:,由曲面片角点处的ru,rw和ruw确定ru(0,w)和ru(1,w),角点处的rw和ruw确定ru(u,0)和rw(u,1)即跨界斜率有着重大的意义。,167,曲面片合成曲面时,为达到边界跨界斜率连续,只需要相邻曲面片的相应角点处的三个矢量(ru,rw和ruw)匹配就行。,从r(0,w)、r(1,w)、r(u,0)和r(u,1)的矩阵形式看出,扭矢对曲面片的边界并无影响,调整扭矢只会改变曲面片四条边界的跨界斜率,引起曲面内部形状发生变化。,费格森双三次曲面片,将C矩阵的右下四个扭矢取为零,曲面较平坦;孔斯双三次曲面片,允许角点扭矢为非零矢量。,168,二.Bezier曲面1、Bezier曲面片,与构造双三次曲面片思路类似,把三次Bezier曲线拓广成双三次Bezier曲面。,给出16个空间顶点Vij(i,j=0,1,2,3),将这些点沿参数u、w方向连接起来,构

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论