第八章 三维对象的表示
更新时间:2023-08-28 00:04:01 阅读量: 教育文库 文档下载
- 第八章光结局和夜结局推荐度:
- 相关推荐
计算机图形学———三维对象的表示
曾
智软件学院
勇
计算机图形学———三维对象的表示
自由曲线和曲面是指那些形状比较复 杂、不能用初等解析函数直接表示出来的 曲线和曲面。汽车车身、飞机机翼和轮船 船体等的曲线和曲面均属于这一类。一般 情况下,它们需要利用插值或逼近的方法, 对型值点进行拟合,得到拟合曲线和曲面。
计算机图形学———三维对象的表示
8.1 曲线曲面的参数表示及连续性 8.1.1曲线曲面的参数表示如果用u表示参数,二维空间自由曲线的参数方程可以记为: x﹦x(u),y﹦y(u) u [0,1] 二维空间曲线上一点的参数表示为: P(u)﹦[x(u),y(u)] 三维空间自由曲线的参数方程表示为: x﹦x(u),y﹦y(u),z﹦z(u);u [0,1] 曲线上一点的参数表示为: P(u)﹦[x(u),y(u),z(u)] 同样,如果用u,w表示参数,二维空间自由曲面的参数方程 表示为: x﹦x(u,w),y﹦y(u,w) u,w [0,1] 曲面上一点的参数表示为: P(u,w)﹦[x(u,w),y(u,w)] 三维空间自由曲面的参数方程表示为: x﹦x(u,w),y﹦y(u,w),z﹦z(u,w);u,w [0,1] 曲面上一点的参数表示为: P(u,w)﹦[x(u,w),y(u,w),z(u,w)]。
计算机图形学———三维对象的表示
8.1.2 插值、逼近和拟合 给出一组有序的型值点列,根据应用的要求来得 到一条光滑曲线,通常采用两种不同的方法,即插 值方法和逼近方法。 插值方法要求生成的曲线通过每个给定的型值点。 曲线插值方法有多项式插值,分段多项式插值,样 条函数插值等。 逼近方法要求生成的曲线靠近每个型值点,但不 一定要求通过每个点。逼近方法有最小二乘法, Bezier方法,B样条方法等。 用插值或逼近来构造曲线的方法通称为曲线拟合 方法。
计算机图形学———三维对象的表示
8.1.3 参数连续性条件 0阶导数连续性,记作C0连续,是指曲线相连。即第一 个曲线段在u﹦1处的x,y,z值与第二个曲线段在u﹦0处的 x,y,z值相等。 一阶导数连续性,记作C1连续,指两个相邻曲线段在 交点处有相同的一阶导数。 二阶导数连续性,记作C2连续,指两个相邻曲线段在 交点处有相同的一阶和二阶导数。高阶参数连续性可类 似定义。 0阶几何连续性,记为G0连续,与0阶导数连续性相同。 即两个曲线段在公共点处有相同的坐标。 一阶几何连续性,记为G1连续,指一阶导数在两个相 邻段的交点处成比例,而大小不一定相等。 二阶几何连续性,记为G2连续,指两个曲线段在相交 处其一阶和二阶导数均成比例。G2连续下,两个曲线段在 交点处的曲率相等。
计算机图形学———三维对象的表示
8.1.4 参数样条曲线 1.样条曲线 在计算机图形学中,术语样条曲线指由多项式 曲线段连接而成的曲线,在每段的边界处满足特 定连续条件。而样条曲面可用两组正交样条曲线 来描述。样条用来设计曲线和曲面形状,典型的 CAD应用包括汽车、飞机和航天飞机表面设计以 及船壳设计。 2.参数样条表示 在计算机图形
学应用中使用几种不同的样条描 述。每种描述是一个带有某特定边界条件多项式 的特殊类型。
计算机图形学———三维对象的表示
例如空间一条曲线用三次参数方程可以表示如下: x(u)﹦axu 3﹢bxu 2﹢cxu﹢dx y(u)﹦ayu 3﹢byu 2﹢cyu﹢dy z(u)﹦azu 3﹢bzu 2﹢czu﹢dz u [0,1] 或 P(u)﹦au 3﹢bu 2﹢cu﹢d u [0,1] 如果曲线的边界条件设定为端点处满足给定坐标值 P(0)和P(1),同时端点处的导数也满足给定值P’(0) 和P’(1)。这四个边界条件对决定上式中方程的系数 是充分条件。例如已知x(0)、x(1)、x’(0)和x’(1), 则ax、bx、cx和dx就可以求出。解出各个系数后的上) 式就是一种确定的三次参数样条表示式。
计算机图形学———三维对象的表示
8.2 三次样条插值曲线 实际上,通常使用的是三次样条曲线。这是因 为三次多项式曲线是能使曲线段的端点通过特定的 点,并能使曲线段在连接处保持位置和斜率连续性 的最低阶次的多项式。与更高次多项式相比,三次 多项式只需较少的计算和存储且较稳定,而更低次 多项式又难以用来描述复杂形状的曲线。 如果想使用三次样条获得一条通过各个型值点 的连续曲线,需要利用三次样条分段插值得到通过 每个型值点的分段三次样条曲线。对n+1个型值点, 分段插值时段与段之间要建立合适的边界条件,既 能使各段之间平滑连续,又可建立起足够的方程数, 求出所有的系数。
计算机图形学———三维对象的表示
8.2.1 Hermite 样条插值曲线 Hermite样条插值(以法国数学家Charles Hermite 命名)使用型值点和型值点处的一阶导数建立边界条 件。设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+1﹦a﹢b﹢c﹢d一阶导数为:
将边界条件P’(0)﹦Dk和P’(1)﹦Dk+1代入方程得: Dk ﹦c Dk+1﹦3a﹢2b﹢c
计算机图形学———三维对象的表示
由边界条件构成的4个方程联立: Pk ﹦d Pk+1﹦a﹢b﹢c﹢d Dk ﹦c Dk+1﹦3a﹢2b﹢c 写成矩阵的形式为:
计算机图形学———三维对象的表示
解此方程得:
计算机图形学———三维对象的表示
称为Hermite矩阵,插值样条参数方程可以写成
计算机图形学———三维对象的表示
将上式展开写成代数形式为: P(u)﹦Pk(2u3﹣3u2﹢1)﹢Pk+1(-2u3﹢3u2) +Dk(u3﹣2u2﹢u)﹢Dk+1(u3﹣u2) ﹦PkH0(u)﹢Pk+1H1(u)﹢DkH2(u)﹢Dk+1H3(u)其中 H0(u)﹦2u3﹣3u2﹢1 H1(u)﹦-2u3﹢3u2 H2(u)﹦u3﹣2u2﹢u H3(u)﹦u3﹣u2 称为Hermite样条调和函数,因为它们调和了边界约束值, 使在整个参数范围内产生曲线的坐标值。调和函数仅与 参数u有关,而与初始条件无关,且调和函数对于空间的 三个坐标分量(x,y,z)是相同的。
计算机图形学———三维对象的表示
下图表示出Hermite样条曲线的调和函数随参数u变化的曲线
计算机图形学———三维对象的表示
还可将方程整理成如下形式: P(u)﹦(2Pk-2Pk+1+Dk﹢Dk+1)u3 ﹢(-3Pk﹢3Pk+1-2Dk
-Dk+1)u2+Dku﹢Pk 写成坐标分量形式则如下式: x(u)﹦(2xk-2xk+1+xk'﹢xk+1')u3 ﹢(-3xk﹢3xk+1-2xk'-xk+1')u2+xk'u﹢xky(u)﹦(2yk-2yk+1+yk'﹢yk+1')u3
﹢(-3yk﹢3yk+1-2yk'-yk+1')u2+yk'u﹢yk ﹢(-3zk﹢3zk+1-2zk'-zk+1')u2+zk'u﹢zk
z(u)﹦(2zk-2zk+1+zk'﹢zk+1')u3
如果是平面曲线,则只有x和y分量。
计算机图形学———三维对象的表示
例:给定9个型值点,其中起始点和终止点是同一个点, 从而其特征多边形是一个首尾相接的封闭多边形,具 体坐标位置如下:(100,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 arry1[9][2]={100,300,120,200,220,200,270,100,370,100,420,200,420,300,220,280,100,300}; int arry2[9][2]={70,-70,70,-70,70,-70,70,-70,70,70,70,70,-70,70,-70,70,70,-70}; for(i=0;i<8;i++) { SetColor(RGB(0,0,255),hdc); line(hdc,arry1[i][0],arry1[i][1],arry1[i+1][0],arry1[i+1][1]); SetColor(RGB(255,0,0),hdc); Hermit3(hdc,arry1,arry2,i,100); } } void Hermit3(HDC hdc,int arry1[2][2],int arry2[2][2],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=arry1[n][0]; k2=arry1[n+1][0]; k3=arry2[n][0]; k4=arry2[n+1][0]; m1=arry1[n][1]; m2=arry1[n+1][1]; m3=arry2[n][1]; m4=arry2[n+1][1];
计算机图形学———三维对象的表示
MoveToEx(hdc,arry1[n][0],arry1[n][1],NULL); a0 = k1; a1 = k3; a2 = -3*k1+3*k2-2*k3-k4; a3 = 2*k1-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;i<steps;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); } }
正在阅读:
第八章 三维对象的表示08-28
2006年一级建造师《管理与实务(矿山工程)》考试试卷及答案05-12
表哥驾到-重点知识及练习11-12
房屋买卖契约03-14
班组长考试卷及答案11-22
做错事,要会反省 - 珍贵的是“觉醒的历程”读书笔记01-04
矿井测量09-23
我变成时间机器人作文350字06-14
项目4 部门间网络的安全隔离09-02
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 三维
- 对象
- 表示
- 化疗药物的配置与垃圾分类
- 1.3区域发展阶段与人类活动
- 中国煤炭资源产业竞争态势专项调查及企业发展商机评估报告
- 非道路移动机械排气污染防治办法
- 单片机汇编语言—冒泡排序
- 自然辩证法在农业机械发展领域的应用
- 特种设备报审需提供的资料清单
- 窦桂梅葡萄沟说课稿(共7篇)
- 核能发电厂和新能源发电厂
- 2015高考漫画作文指导
- 7员工岗位异动管理制度(第1版)
- 福彩3d选号杀号预测
- 信息安全培训手册
- 漳州市地方税务局关于发布《自然人股东股权转让所得个人所得税征收管理办法(试行)的公告
- 物业临时管理规约
- 邓州时代国际项目分析
- 高中政治哲学原理方法论归纳 精编版 共3页
- 【2018-2019】大学生课余生活的调查报告-word范文模板 (3页)
- 1-2地测工作各项规章制度
- 古文中惊艳的句子——真的怕以后找不到了