《九讲曲线与曲面ppt课件.ppt》由会员分享,可在线阅读,更多相关《九讲曲线与曲面ppt课件.ppt(24页珍藏版)》请在三一办公上搜索。
1、,第九讲:曲线与曲面,内容提要,曲线曲线的DDA算法Bzier曲线N次Bzier曲线Bzier曲线矩阵表示Bzier曲线性质例子B_Spline曲线曲面Bzier曲面,曲线的概念,自由曲线:工程上除了常用到规则曲线外,还往往需要根据一组离散的数据点(型值点)来构造一条光滑的曲线。这类曲线包括平面不规则曲线和空间曲线。曲线的拟合:完全通过或者比较贴近给定型值点来构造曲线的方法。曲线的插值:求曲线上在给定型值点之间的点。,曲线的DDA算法,假设想画一条曲线方程为f(x)的曲线。对于曲线DDA算法来说,有了自变量x的增量x,可写出其因变量的增量y:y=f(x)x 于是通过这个数字微分分析器算法,用户
2、便可以按步长逐点画出这条曲线。DDA算法是一种曲线拟合算法,曲线的内插法,曲线的DDA算法的缺点:确定曲线方程以及一阶导函数,对于不规则的曲线的构造会比较困难。内插法:使用一组采样点,就可以近似地画出没有数学解析式子的曲线。根据采样点能猜测曲线的走向,如果采样点较密,可做出较好的猜测。一般来说,未知曲线在小范围内和邻近曲线变化趋势非常相似,且共用一些采样点,因此可以用小的直线段,将已知曲线延伸,并和其余的采样点连接起来。,Bzier曲线(法国工程师:Pierre Bzier),设定两点P0、P1,用拟合式子表示直线P0P1.L0(t)=(1-t)P0+tP1 t0,1称为:一次Bzier曲线设
3、定三点P0、P1、P,同理可得:L(t)=(1-t)P1+tP2 t0,1再在L0,L基础上采用上述拟合式子可得:L0(t)L0+t L1t0,1称为:二次Bzier曲线设定四点P0、P1、P、P,同理可得:L(t)=(1-t)P2+tP3 t0,1L01=(1-t)L0+tL1 L12=(1-t)L1+tL2 L012=(1-t)L01+TL12 称为:三次Bzier曲线。,P0,P1,P2,L0,L1,P0,P1,P2,P3,L0,L1,L2,L01,L12,L012,P0,P1,L0,N次Bzier曲线,n次Bzier曲线表示如下:Ln(t)=PiC ti(1-t)n-i=PiBi,n(
4、t)t0,1其中:Bi,n(t)i=0,1,n,Bzier曲线矩阵表示,当n=1时,L1(t)t0,1一次Bzier曲线当n=时,L01(t)t0,1此式说明二次Bzier曲线对应一条起点在P0,终点在P2处的抛物线。当n=时,L012(t)t0,1三次Bzier曲线,Bzier曲线性质,端点的位置:L(0)=P0,L(1)=Pn 端点的切线:L(t)在P0点与P0 P线段相切,在Pn点与Pn-1 Pn线段相切。曲率:端点处的r阶导数只与(r+1)个相邻点有关,于更远的点无关。凸包性:指Bzier曲线上各点均落在控制点连成的折线包之内。几何不变性:在不同坐标系下表示的曲线形状不变,与仿射坐标系
5、的选择无关,仅与控制点位置有关。交互能力:控制点P0 P Pn大致地勾画出Bzier曲线L(t)的形状,要改变L(t),只需改变Pi的位置。,有三个、四个、五个控制点生成的二维Bzier 曲线的例子,虚线连接了控制点位置。,几个控制点生成的二维Bzier 曲线的例子,第一个和最后一个控制点重合。,由两个Bzier曲线段形式的分段逼近曲线,让P0=P2,使P1,P2,P1共线,可得到两曲线段间的0阶和一阶连续。,多个控制点具有相同的坐标位置,曲线更靠近该位置。,几种特殊情况,B-样条函数,n为采样点个数-1,t(0,1),3,三次B样条使用步骤,三次B样条的几点提示,B-样条函数矩阵表示,利用(
6、1)和采样点x(t0)x(tn),y(t0)y(tn),以及一阶导数(端点处)可得出求系数ai、bi 的线性方程组(可用主元消去法解方程组),未知,已知,=,当求出ai、bi后再带入(1)中计算x和y值。此时,根据光滑度的需要重新确定n值大小。,表示的曲线,-2-1 0 1 2 0 1/6 2/3 1/6 0 0 1/2 0-1/2 0,设t0=0,t=1/n,那么t1=1/n,tn=1,ti=i t其中:x(t0)=x/t=n(x1-x0)x(tn)=x/t=n(xn-xn-1)y(t0)=y/t=n(y1-y0)y(tn)=y/t=n(yn-yn-1)例子:x0=0,x1=-50,x2=0
7、,n=2,t=1/2,t0=0,t1=1/2,t2=1 y0=0,y1=100,y2=200,三个采样点为:(0,0),(-50,100),(0,200)x0=n(x1-x0)=2(-50-0)=-100 x2=2(x2-x1)=2(0+50)=100y0=n(y1-y0)=2(100-0)=200y2=2(y2-y1)=2(200-100)=200,求解方程组,Bzier曲面,Bezier曲面是Bezier曲线的推广。这里我们仅讨论双三次Bzier曲面,它是通过给定的44个空间网格点来控制的,如右图所示。和Bezier曲线类似,这十六个控制点决定了Bezier曲面的形状。我们把这16个控制点
8、写成矩阵的形式如(1)所示:Bezier曲面的B矩阵中的周围十二个信息(位置向量)定义了四条三次Bezier曲线,这四条曲线就是曲面的边界曲线;而角点P00、P30、P03、P33与邻近的点分别定义了四条边界曲线在角点处的八个切向量;中间四个信息P11、P12、P21、P22则决定了曲面的凹凸。,P00 P01 P02 P03P10 P11 P12 P13P20 P21 P22 P23P30 P31 P32 P33,B=,(1),Bezier曲面和控制点。,Bezier曲面的表达式,即 S(u,w)=U.N.B.NT.WT(0u1,0w1)式中:U=u3 u2 u 1,P00 P01 P02 P03P10 P11 P12 P13P20 P21 P22 P23P30 P31 P32 P33,B=,-1 3-3 13-6 3 0-3 3 0 01 0 0 0,N=NT,w3w2w1,WT=,Bezier曲面和控制点,Bezier曲面的分量表达式,若写成x,y,z三个方向分量的形式,则Bezier曲面可以表示为:x(u,w)=U.N.Bx.NT.WTy(u,w)=U.N.By.NT.WTz(u,w)=U.N.Bz.NT.WT(0u1,0w1),Bezier曲面和控制点,感谢支持,