《维对象的表》ppt课件

上传人:tia****nde 文档编号:69715121 上传时间:2019-01-14 格式:PPT 页数:111 大小:770.82KB
返回 下载 相关 举报
《维对象的表》ppt课件_第1页
第1页 / 共111页
《维对象的表》ppt课件_第2页
第2页 / 共111页
《维对象的表》ppt课件_第3页
第3页 / 共111页
《维对象的表》ppt课件_第4页
第4页 / 共111页
《维对象的表》ppt课件_第5页
第5页 / 共111页
点击查看更多>>
资源描述

《《维对象的表》ppt课件》由会员分享,可在线阅读,更多相关《《维对象的表》ppt课件(111页珍藏版)》请在金锄头文库上搜索。

1、曾 智 勇 软件学院,第八章 三维对象的表示 自由曲线和曲面,自由曲线和曲面是指那些形状比较复杂、不能用初等解析函数直接表示出来的曲线和曲面。汽车车身、飞机机翼和轮船船体等的曲线和曲面均属于这一类。一般情况下,它们需要利用插值或逼近的方法,对型值点进行拟合,得到拟合曲线和曲面。,8.1 曲线曲面的参数表示及连续性 8.1.1曲线曲面的参数表示 如果用u表示参数,二维空间自由曲线的参数方程可以记为: xx(u),yy(u) u0,1 二维空间曲线上一点的参数表示为: P(u)x(u),y(u) 三维空间自由曲线的参数方程表示为: xx(u),yy(u),zz(u);u0,1 曲线上一点的参数表示

2、为: P(u)x(u),y(u),z(u) 同样,如果用u,w表示参数,二维空间自由曲面的参数方程表示为: xx(u,w),yy(u,w) u,w0,1 曲面上一点的参数表示为: P(u,w)x(u,w),y(u,w) 三维空间自由曲面的参数方程表示为: xx(u,w),yy(u,w),zz(u,w);u,w0,1 曲面上一点的参数表示为: P(u,w)x(u,w),y(u,w),z(u,w)。,8.1.2 插值、逼近和拟合 给出一组有序的型值点列,根据应用的要求来得到一条光滑曲线,通常采用两种不同的方法,即插值方法和逼近方法。 插值方法要求生成的曲线通过每个给定的型值点。曲线插值方法有多项式

3、插值,分段多项式插值,样条函数插值等。 逼近方法要求生成的曲线靠近每个型值点,但不一定要求通过每个点。逼近方法有最小二乘法,Bezier方法,B样条方法等。 用插值或逼近来构造曲线的方法通称为曲线拟合方法。,8.1.3 参数连续性条件 0阶导数连续性,记作C0连续,是指曲线相连。即第一个曲线段在u1处的x,y,z值与第二个曲线段在u0处的x,y,z值相等。 一阶导数连续性,记作C1连续,指两个相邻曲线段在交点处有相同的一阶导数。 二阶导数连续性,记作C2连续,指两个相邻曲线段在交点处有相同的一阶和二阶导数。高阶参数连续性可类似定义。 0阶几何连续性,记为G0连续,与0阶导数连续性相同。即两个曲

4、线段在公共点处有相同的坐标。 一阶几何连续性,记为G1连续,指一阶导数在两个相邻段的交点处成比例,而大小不一定相等。 二阶几何连续性,记为G2连续,指两个曲线段在相交处其一阶和二阶导数均成比例。G2连续下,两个曲线段在交点处的曲率相等。,8.1.4 参数样条曲线 1样条曲线 在计算机图形学中,术语样条曲线指由多项式曲线段连接而成的曲线,在每段的边界处满足特定连续条件。而样条曲面可用两组正交样条曲线来描述。样条用来设计曲线和曲面形状,典型的CAD应用包括汽车、飞机和航天飞机表面设计以及船壳设计。 2参数样条表示 在计算机图形学应用中使用几种不同的样条描述。每种描述是一个带有某特定边界条件多项式的

5、特殊类型。,例如空间一条曲线用三次参数方程可以表示如下: x(u)axu 3bxu 2cxudx y(u)ayu 3byu 2cyudy z(u)azu 3bzu 2czudz u0,1 或 P(u)au 3bu 2cud u0,1 如果曲线的边界条件设定为端点处满足给定坐标值P(0)和P(1),同时端点处的导数也满足给定值P(0)和P(1)。这四个边界条件对决定上式中方程的系数是充分条件。例如已知x(0)、x(1)、x(0)和x(1),则ax、bx、cx和dx就可以求出。解出各个系数后的上)式就是一种确定的三次参数样条表示式。,8.2 三次样条插值曲线 实际上,通常使用的是三次样条曲线。这是

6、因为三次多项式曲线是能使曲线段的端点通过特定的点,并能使曲线段在连接处保持位置和斜率连续性的最低阶次的多项式。与更高次多项式相比,三次多项式只需较少的计算和存储且较稳定,而更低次多项式又难以用来描述复杂形状的曲线。 如果想使用三次样条获得一条通过各个型值点的连续曲线,需要利用三次样条分段插值得到通过每个型值点的分段三次样条曲线。对n+1个型值点,分段插值时段与段之间要建立合适的边界条件,既能使各段之间平滑连续,又可建立起足够的方程数,求出所有的系数。,8.2.1 Hermite 样条插值曲线 Hermite样条插值(以法国数学家Charles Hermite命名)使用型值点和型值点处的一阶导数

7、建立边界条件。设P和P为第K个和第K+1个型值点,Hermite样条插值边界条件规定为: P(0) Pk P(1) Pk+1 P(0)Dk P(1)Dk+1 其中,Dk和Dk+1分别为Pk和Pk+1处的一阶导数。 将参数方程写成矩阵形式为:,将边界条件P(0) Pk和P(1) Pk+1代入方程得: Pk d Pk+1abcd 一阶导数为:,将边界条件P(0)Dk和P(1)Dk+1代入方程得: Dk c Dk+13a2bc,由边界条件构成的4个方程联立: Pk d Pk+1abcd Dk c Dk+13a2bc 写成矩阵的形式为:,解此方程得:,称为Hermite矩阵,插值样条参数方程可以写成,

8、将上式展开写成代数形式为: P(u)Pk(2u33u21)Pk+1(-2u33u2) +Dk(u32u2u)Dk+1(u3u2) PkH0(u)Pk+1H1(u)DkH2(u)Dk+1H3(u) 其中 H0(u)2u33u21 H1(u)-2u33u2 H2(u)u32u2u H3(u)u3u2 称为Hermite样条调和函数,因为它们调和了边界约束值,使在整个参数范围内产生曲线的坐标值。调和函数仅与参数u有关,而与初始条件无关,且调和函数对于空间的三个坐标分量(x,y,z)是相同的。,下图表示出Hermite样条曲线的调和函数随参数u变化的曲线,还可将方程整理成如下形式: P(u)(2Pk-

9、2Pk+1+DkDk+1)u3 (-3Pk3Pk+1-2Dk-Dk+1)u2+DkuPk 写成坐标分量形式则如下式: x(u)(2xk-2xk+1+xkxk+1)u3 (-3xk3xk+1-2xk-xk+1)u2+xkuxk y(u)(2yk-2yk+1+ykyk+1)u3 (-3yk3yk+1-2yk-yk+1)u2+ykuyk z(u)(2zk-2zk+1+zkzk+1)u3 (-3zk3zk+1-2zk-zk+1)u2+zkuzk 如果是平面曲线,则只有x和y分量。,例:给定9个型值点,其中起始点和终止点是同一个点,从而其特征多边形是一个首尾相接的封闭多边形,具体坐标位置如下: (100

10、,300),(120,200),(220,200),(270,100),(370,100),(420,200),(420,300),(220,280),(100,300) 假定各点处的一阶导数数值如下: (70,-70), (70,-70), (70,-70),(70,-70), (70,70), (70,70), (-70,70),(-70,70), (70,-70) 用Hermite插值方法绘制曲线。,Hermit三次曲线算法主要实现子程序实例,void HermitCurve(HDC hdc) int i; int arry192=100,300,120,200,220,200,270,

11、100,370,100,420,200,420,300,220,280,100,300; int arry292=70,-70,70,-70,70,-70,70,-70,70,70,70,70,-70,70,-70,70,70,-70; for(i=0;i8;i+) SetColor(RGB(0,0,255),hdc); line(hdc,arry1i0,arry1i1,arry1i+10,arry1i+11); SetColor(RGB(255,0,0),hdc); Hermit3(hdc,arry1,arry2,i,100); void Hermit3(HDC hdc,int arry12

12、2,int arry222,int n,int steps) int i,x,y,k1,k2,k3,k4,m1,m2,m3,m4; float a0,a1,a2,a3,b0,b1,b2,b3,dt,t,t2,t3; k1=arry1n0; k2=arry1n+10; k3=arry2n0; k4=arry2n+10; m1=arry1n1; m2=arry1n+11; m3=arry2n1; m4=arry2n+11;,MoveToEx(hdc,arry1n0,arry1n1,NULL); a0 = k1; a1 = k3; a2 = -3*k1+3*k2-2*k3-k4; a3 = 2*k1

13、-2*k2+k3+k4; b0 = m1; b1 = m3; b2 = -3*m1+3*m2-2*m3-m4; b3 = 2*m1-2*m2+m3+m4; dt = 1.0/steps; for(i=1;isteps;i+) t = i*dt; t2 = t*t; t3 = t*t2; x = a0+a1*t+a2*t2+a3*t3; y = b0+b1*t+b2*t2+b3*t3; LineTo(hdc,x,y); Sleep(5); ,Hermit三次曲线绘制演示,Hermite样条曲线比较简单,易于理解,但要求确定每个型值点处的一阶导数作为初始条件,这是很不方便的,有时甚至是难于实现的。

14、更好的做法是不需要输入曲线斜率值或其它几何信息就能生成样条曲线。,8.2.2 Cardinal 样条曲线 象Hermite样条曲线一样,Cardinal样条曲线也是插值分段三次曲线,且边界条件也是限定每段曲线端点处的一阶导数。与Hermite样条曲线的区别是,在Cardinal样条曲线中端点处的一阶导数值是由两个相邻型值点坐标来计算的。 设相邻的四个型值点分别记为Pk-1、Pk、Pk+1、Pk+2, Cardinal样条插值方法规定Pk、Pk+1 两型值点间插值多项式的边界条件为: P(0) Pk P(1) Pk+1 P(0)(1t)(Pk+1Pk-1)/2 P(1)(1t)(Pk+2Pk)/

15、2 其中t为一可调参数,称为张力参数,可以控制Cardinal样条曲线型值点间的松紧程度。,记S=(1t)/2,用类似Hermite曲线样条中的方法,将Cardinal边界条件代入参数方程,可以得到矩阵表达式:,其中,称为Cardinal矩阵。 将式子展开写成代数形式为: P(u)Pk-1(-su32su2su)Pk(2s)u3 (s3)u21)Pk+1(s2)u3 (32s)u2su)Pk+2(su3su2),其中 C0(u)-su32su2su C1(u)(2s)u3(s3)u21 C2(u)(s2)u3(32s)u2su C3(u)su3su2 称为Cardinal样条调和函数。下图是Cardinal样条调和函数的曲线图。,还可将方程整理成如下形式: P(u)(-sPk-1(2s)Pk(s2)Pk+1sPk+2)u3 (2sPk-1(s3)Pk(32s)Pk+1sPk+2)u2 (-sPk-1sPk+1)uPk 将方程式写成坐标分量的形式为: x(u)(-sxk-1(2s)xk(s2)xk+1sxk+2)u3 (2sxk-1(s

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号