欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    计算机图形学演示系统.doc

    • 资源ID:2391712       资源大小:1.41MB        全文页数:58页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机图形学演示系统.doc

    图书分类号: 密 级:毕业设计计算机图形学演示系统开发THE DEVELOPMENT OF COMPUTER GRAPHICS PRESENTATION SYSTEMS学生姓名学院名称专业名称指导教师2009年5月12日 徐州工程学院学位论文原创性声明本人郑重声明: 所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用或参考的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品或成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标注。本人完全意识到本声明的法律结果由本人承担。论文作者签名: 日期: 年 月 日徐州工程学院学位论文版权协议书本人完全了解徐州工程学院关于收集、保存、使用学位论文的规定,即:本校学生在学习期间所完成的学位论文的知识产权归徐州工程学院所拥有。徐州工程学院有权保留并向国家有关部门或机构送交学位论文的纸本复印件和电子文档拷贝,允许论文被查阅和借阅。徐州工程学院可以公布学位论文的全部或部分内容,可以将本学位论文的全部或部分内容提交至各类数据库进行发布和检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。论文作者签名: 导师签名: 日期: 年 月 日 日期: 年 月 日摘要计算机图形学是随着计算机技术在图形处理领域中的应用而发展起来的学科,是伴随着电子计算机及其外围设备的发展而发展起来的,它是计算机应用学科的一个重要分支。为了提高计算机图形学的课堂教学效果, 我们设计制作了计算机图形学教学演示系统, 该系统直观地实现计算机图形学算法, 并具有良好的可扩充性。本文在研究相关可视化理论的基础上,探讨当前引入可视化教学的意义,针对目前计算机图形学教学内容,确定可视化教学内容及目标,开展计算机图形学算法可视化教学的研究和实践。在VC+6.0的开发环境下,开发出计算机图形学教学演示系统,该系统实现了基本图元的生成、多边形填充、直线段裁剪、曲线生成及图形的基本几何变换等。此系统摒弃了计算机图形学教学过程中以理论文稿附之以静态图片的传统讲授形式,运用动态演示的可视化技术,开发出一套计算机图形学可视化教学演示系统(CAI)。关键词 图形生成;动态演示;可视化;交互控制AbstractComputer Graphics is a discipline developed with applications of computer technology in the field of graphics processing.It is accompanied by the development of a computer and its peripheral equipment, and it is an important branch of the computer application disciplines. In order to improve its classroom teaching effects, we designed the “Teaching Presentation System of Computer Graphics”, in which computer graphics algorithms can be realized intuitively, and good scalability can be found.Based on the research theory of visualization, this paper explores the meaning of the current introduction of the visualization teaching. Focused on the current teaching content of Computer Graphics, to determine the content and objectives of visualization teaching, and carry out visualization teaching research and practice of computer graphics algorithms. On VC + +6.0 developing environment, “Teaching Presentation System of Computer Graphics” has been developed. The system has developed the basic elements of graphic production, polygon filling, line segment cutting, curve generation and the basic geometric transformations of graphics, which discards the traditional lecture format in the computer graphics teaching- theoretical presentation attached a static picture process, applies a visual technology of dynamic presentation, has developed a set of presentation systems of computer graphics visualization teaching (CAI).Keywords graphics generation dynamic presentation visualization alternant control目 录1 绪论11.1课题来源与背景11.1.1计算机辅助教学(CAI)11.1.2背景与课题来源11.2研究的目的与意义11.3研究的主要内容21.4系统特点22 系统的功能分析与总体设计42.1系统的开发环境42.2系统的功能需求分析42.2.1系统开发的内容42.2.2系统需要实现的功能42.3图形演示系统的流程43 二维图形的基本几何变换63.1 概述63.2二维图形的生成原理分析63.2.1直线63.2.2椭圆73.2.3二维变换83.2.4曲线103.2.5直线裁剪113.2.6 多边形填充123.3二维图形的可视化原理分析133.3.1系统的界面设计133.4程序运行实例144 三维图形的基本几何变换154.1概述154.2三维图形的生成算法原理分析154.2.1三维变换154.2.2曲面204.3三维图形的可视化原理分析204.3.1三维变换204.3.2曲面234.4程序运行实例235 计算机图形学演示系统的实现255.1系统的类255.2类的实现265.2.1 CAppView类265.2.2 CGrapicsDemoView类265.2.3 CMainFrame类275.3程序控制与操作31结论33致谢34参考文献35附录361 绪论1.1课题来源与背景1.1.1计算机辅助教学(CAI)计算机辅助教学是随着计算机技术的发展而产生和发展的。计算机辅助教学(Computer Assisted Instruction。简称CAI)是指将计算机所具有的特殊功能用于教学的一种教学形态,在教学活动中,在计算机的帮助下,传递教学过程中的教学信息,达到教育目的,从而完成教学任务。计算机直接介入教学过程,并承担教学中某些环节的任务,从而达到提高教学效果,减轻师生负担的目的。1.1.2背景与课题来源计算机图形学是研究怎样用计算机生成、处理、显示和输出图形的学科。而图形学教学的关键在于如何将图形的各种变换生动直观地展示给学习者,使学习者更深入的理解计算机图形学的理论和算法原理。传统的计算机图形学算法的实现和开发主要是基于以Turbo C为代表的DOS开发环境,这种方法可视化效果很差,并且缺乏交互控制和动态演示。因而往往会给学习者的理解和深入探讨带来很大的问题。后来,随着多媒体技术的发展,计算机图形学的教学开始运用静态的图片教学幻灯片的形式来讲授,这些教学幻灯片虽然弥补了传统的黑板板书的不足,较大地提高了教学质量,但是这种教学模式在可视性和交互性方面仍然存在着较大的不足。往往让学习者感到很抽象,难以理解。近几年,编程语言的较快发展使计算机图形学CAI教学系统有了很大的进步。使CAI教学系统实现了计算机图形学理论的实践化,能使学习者通过交互式的操作,更深入了解计算机理论的用法,但是这种教学系统无法学习者看见图形生成的源程序,在帮助学习者对理论的深入理解上仍存在着些许不足,使他们无法真正体会图形生成的算法原理。目前,还有一种教学模式是采用flash动画演示并配加一定文字说明的方式,这种方式可以在很大程度上揭示图形生成的算法原理,遗憾的是不能很全面的演示教学内容,缺乏交互性,不能让学习者自己输入相关的参数。为此,本文在ViusalC+6.0的编程环境下,开发了一套专门致力于帮助学习者理解计算机图形学理论的动态演示系统。该系统将可视性,交互性和可扩展性紧紧地结合在一起,能够大大改善传统教学的弊端,使复杂的难以理解的计算机图形学理论通过教师的课堂演示和学习者的不断自我交互式操作试验变得通俗明朗,有效地提高教学的质量和效果。特别是本文在图形学可视化和交互式操作方面进行了深入研究,这些也是本系统最重要的亮点。1.2研究的目的与意义本文研究的目的是在VC+6.0开发环境下,实现动态演示过程。并在演示过程中体现出图形生成的可视化,实现直线的生成、直线剪切、多边形填充、二维图形的基本几何变换、三维图形的基本几何变换以及Bezier曲线变换的生成与变换过程,从而提高学生的学习兴趣,加深学生对算法和图形生成原理的理解和认识。最终达到提高教学质量的目的。本系统研究的意义在于它能直观地演示计算机图形学繁琐的内容,使计算机图形学比较抽象的内容具体化,能够提起学生的兴趣,从而可以较大的提高教学质量,提高教学效率。再者,计算机图形学演示系统也可以给其它学科的可视化系统的开发提供一定的参考价值。1.3研究的主要内容本文理论与实践相结合,在认真分析了图形学算法原理的基础上,提出了一种将图形生成过程与图形的变换过程同步可视化演示的新思路,实现了计算机图形学中大部分图形的可视化演示。论文研究的主要内容及结构安排如下:第一章,概述计算机图形学辅助教学系统的研究背景,研究目的和研究意义。第二章,主要介绍了系统的开发环境,系统的功能需求分析以及系统的总体结构设计。第三章,主要讲述了计算机图形学中二维图形的可视化方法,其中包括直线,椭圆的可视化方法,各种二维变换的可视化,和各种曲线的可视化实现原理,直线裁减和多边形裁减的可视化,最后还给出了部分实例。第四章,主要讲述了计算机图形学中三维图形的可视化方法,其中包括三维图形的比例、平移、旋转和错切变换,Bezier曲面的可视化,最后还给出了部分实例。第五章,重点讲述了系统实现的各主要的类之间的层次关系,同时将其中的主要的类作了详细介绍,说明了类中的函数的调用关系,最后还简单说明了程序的操作和控制方法。第六章,主要介绍了本文的工作总结,提出了本文的创新点,本文存在的不足以及未来工作的展望。1.4系统特点本文在VC+6.0的环境下,开发了一套全新的集可视性,交互性于一体的计算机图形学演示系统,本系统的主界面如图1-1所示。图1-1 系统的主界面本文根据计算机图形学的基本理论,运用各种动态演示的方法,将直线的生成、直线剪切、多边形填充、二维图形的基本几何变换、三维图形的基本几何变换以及Bezier曲线变换的生成过程以及变化过程的显示在学习者面前。本系统的主要特点如下:(l)界面友好 本系统充分利用了VC+编程语言界面友好的特点,在程序界面中增加了控制工具栏,所有图标都设定了提示和状态栏提示帮助,极大的方便了学习者的使用。(2)可视性强 本系统摆脱了以往的静态文字说明的教学方式,将图形的实现过程以动态的方式一步步演示出来,给学生一种耳目一新的感觉。动态的演示效果大大地激发了学生的学习兴趣,让学生对图形生成的算法原理有了更直接和更真实的认识。(3)可操作性强 本系统采用了VC+里面的单文档界面,增加了对演示程序的操作菜单,学生可以通过选择更改参数或者选择放大图形、缩小图形、复位等菜单来控制程序的运行,实现了学生与程序的交互,极大的提高了教学质量。(4)可扩展性强 本系统具有良好的扩展性,可以在短时间内加入新的图形的生成算法可视化的动态演示。2 系统的功能分析与总体设计2.1系统的开发环境本文是在Window XP的环境下开发的。以VC+6.0为开发语言,主要是基于以下原因:1.VC+6.0的界面友好,在VC+6.0的MFC类库中,可以多种文档界面和对话框界面等,可以比较容易借鉴已有的相关文献,同时也不失美观。2.功能强大,可扩展性好。VC+6.0良好的扩展性可以使一些新的想法系统的编程过程中比较容易实现。2.2系统的功能需求分析2.2.1系统开发的内容计算机图形学演示系统研究的内容主要有:实现直线的生成、直线剪切、多边形填充、二维图形的基本几何变换(平移、等比例放大缩小、旋转、反射、错切)、三维图形的基本几何变换(平移、等比例放大缩小、旋转、反射、错切)以及Bezier曲线变换的生成过程以及变化过程。2.2.2系统需要实现的功能文件功能:能够新建和退出程序。界面控制功能:能够通过菜单栏、工具栏以及右击的方式简单直观的画出直线、矩形以及椭圆,并能通过菜单调用相关图形演示。参数设置功能:能够通过调用对话框的形式对部分演示图形的相关参数进行修改。动态演示功能:可以实现图形的生成与变换的过程,实现计算机图形学的可视化。放大缩小功能:能够通过菜单栏或工具栏实现图形的等比缩放的功能。单步执行功能:点击工具栏的单步执行图标,绘图区会一步一步的执行整个算法的演示过程。2.3图形演示系统的流程计算机图形学演示系统流程图如图2-1所示:图2-1系统总体设计结构图3 二维图形的基本几何变换3.1 概述本系统在对计算机图形学的算法可视化的时候,分别对二维图形和三维图形运用了不同的方法来实现,所以本文将把二维图形和三维图形的可视化分开来讨论,这一章主要探讨二维图形的可视化的方法,在下一章将探讨三维图形的可视化方法。二维图形包括直线、椭圆、曲线、裁剪、填充、二维变换等,其中每种图形又包括不同的算法,比如,直线的常见算法有DDA算法、Bresenham算法、中点算法等。在数学上,所有的图形都是以点为最小单位按一定的规律组合而成的集合。为了将图形在计算机上显示出来,实际上就是找出这种排列的规律,然后在显示器所给定的有限个像素组成的矩阵中确定逼近于该图形的最佳像素组,并且按一定的顺序对这些像素进行写操作。图形学生成算法的可视化就是在解读图形显示原理的基础上,通过创建“虚拟栅格”来模仿计算机的“象素点”,结合图形生成的算法,计算出图形在虚拟栅格中的最佳逼近“象素点”,然后以画圆来代替这些“象素点”的方式显示图形。下面我们将对这些二维图形的可视化原理逐一分析。3.2二维图形的生成原理分析3.2.1直线直线作为最简单的图形,是生成其它复杂图形的基础。直线是点的集合,在几何学中直线被定义为两个点之间的最短距离。也就是说一条直线是指所有在它上面的点的集合。直线可以向一个方向及其相反的方向无限延长,这不是计算机图形学中所需要的,在图形学中研究的对象是直线段。下面我们来研究直线上只存在于两个端点,和之间的任意点。例如,线段的起点坐标,终点坐标,这两个点就确定了这条线段,并用线段上的任意一点均满足: 画一条直线实际上是根据一系列计算出来并与该线靠近的像素绘制的,当我们要在屏幕上显示一条直线时,只能在显示器所给定的有限个像素组成的矩阵中确定最佳逼近于该直线的一组像素,并且按扫描线顺序对这些像素进行写操作。这就是通常所说的用显示器绘制直线,或直线的扫描转换。直线的最常见的扫描转换方式有数值微分法(DDA算法),中点法和Bresenham算法。它们的算法原理在计算机图形学的很多书上都介绍的很清楚,在这里我们就不多谈了,可以参考文献13。3.2.2椭圆中心在原点、轴对齐的椭圆的非参数化方程为: (3.1)式3.1可用隐式方程表示为:由于椭圆的对称性,仅考虑在第一象限的椭圆弧即可。对隐函数求导可得,由于可知椭圆在第一象限内单调递减,在区间内切线的斜率从0递减到。为了使生成的椭圆具有封闭性,以弧上斜率为-1的点作为分界,把椭圆弧分成上下两部分。上半部分满足即,的变化量大于的变化量,由从点开始递增步长来确定的值,下半部分满足即,的变化量大于的变化量,由从点开始递增步长来确定的值。由于这两部分是相互独立的,可用两个处理器(或线程)并行处理,而不用考虑同步问题,从而能最大化的提高并行效率,见图3-1。图3-1第一象限的椭圆弧对于上半部分,假设已知点为则下一点在其右方点或右下方点中选择离椭圆弧最近的点,而为右方点到椭圆弧的距离, 为右下方点到椭圆弧的距离,通过做差:可判断出所要选择的点,即:选择右方的点,选择右下方的点.根据所得到的利用上述思想推下一点即可得到与的递推关系式:根据递推关系式和已知点就可得到所有上半部分的点。对于下半部分,假设已知点为,则下一点在其上方点或左上方点中选择离椭圆弧最近的点,而为上方点到椭圆弧的距离, 为左上方点到椭圆弧的距离,通过做差:可判断出所要选择的点,即:选择上方的点,选择左上方的点。根据所得到的利用上述思想推下一点即可得到与的递推关系式:根据递推关系式和已知点(a,0)就可得到所有下半部分的点.通过上下部分拟合得到所有椭圆上的点。椭圆的扫描转换算法主要有DDA算法,中点算法,Bresnham算法以及正负步法和双步法。3.2.3二维变换1.点的变换在二维的平面空间中,我们用来表示平面上的一点。由于点集可以用矩阵的形式表示,所以我们对点的变换可以通过相应的矩阵运算来实现。即:旧点集×变换矩阵新点集2.平移变换将图形上的点分别在X轴方向(水平方向)和Y轴方向(垂直方向)移动和 ,则变换后的点 坐标值为:3.等比例变换以原点为中心,将图形各坐标的X分量和Y分量分别乘以和,则可使图形进行整体的放大和缩小。这时,当=时,图形作相似变换;当时,图形产生变形。利用齐次坐标表示的比例变换为:4.旋转以原点为中心,将点 旋转角度后得到新的一点,其旋转变换表达式为: (3.2)用齐次坐标表示的旋转变换为: (3.3) (3.4)在(3.2)至(3.4)式中,逆时针旋转取正值,顺时针旋转负值。5.错切图形的错切变换可以分为沿x方向错切,沿y方向错切。假设图形上的任意一点的坐标为,将它进行二维错切变换后得到新的一点,坐标变换矩阵的一般形式为:(1)沿方向错切:沿方向错切,坐标变换公式为:沿方向错切,坐标变换公式为:(2)沿方向错切:沿方向错切,坐标变换公式为:沿方向错切,坐标变换公式为:6.以X轴为对称轴的对称变换 点以X轴为对称轴的点坐标为:变换矩阵为:变换式为:7.以Y轴为对称轴的对称变换以Y轴为对称轴的变换矩阵为:变换式为:8.以原点为对称点的对称变换以原点为对称点的变换矩阵为:变换式为:3.2.4曲线1.Bezier曲线 贝赛尔(Bezier)曲线是有多项式调和函数推导出来的,通常n+1个顶点定义一个n次多项式。Bezier曲线的参数方程表示如下: (3.5)在式(3.5)中,表示特征多边形n+1个顶点的位置向量,是伯恩斯坦(Bernstein)多项式,称为基函数,也就是贝赛尔多边形的各顶点位置向量之间的调和函数。该函数的表达式为:2.三次B样条曲线由于Bernstein基函数构造的Bezier曲线不能作局部修改,而且拼接比较复杂,有人找到了B样条方法,在保留Bezier方法全部优点的同时,克服了Bezier方法的弱点。通常,给定m+n+1个顶点,可以定义段n次的参数曲线为:式中,为n次B样条基函数,也称为B样条分段混合函数。其形式为:连接全部曲线段所组成的整条曲线称为n次B样条曲线。依次用线段连接所组成的多边形拆线称为B样条曲线在第i段的B特征多边形。n次B样条曲线可达到n-1阶连续。3.2.5直线裁剪直线的裁剪算法最常见的有Cohen-Sutherland裁剪法,矢量裁剪法和中点裁剪法。这里我们用中点裁剪法来解决直线裁剪问题。该算法的基本思想是:分别寻找直线段两个端点各自对应最远的可见点,只要该线段能在窗口内留下一个可见段,那么这个最远的可见点只有两个选择,要么是直线段的一个相应端点;要么是在不断中点再分过程中产生的某个子段的中点。图3-2中点分割裁剪下面,我们以找出直线段上离点最远的可见点为例。来对中点再分割裁剪法加以说明。算法步骤如下:(1) 检验直线段是否完全被排斥在窗口之外。如果是,过程结束且无输出线段(如图3-2中的线段b);否则继续执行下一步。(2)检验点是否可见。如果是,则点就是离点最远的可见点,过程结束(图3-2中的线段a)如果点是不可见的(如图3-2中的线段c或线段d),那么继续执行下一步。(3)分割直线段于中点(这是为了估计离点最远的可见点,把它简单的取作中点)。如果线段被完全排斥在窗口外,那么原估计不足(如图3-2中线段d),便以线段作为新的线段从算法的第一步重新开始执行。反复执行上述三步,直到找到离点最远的可见点为之。这里要注意的是:在判断中点和窗口边框相重时,一般不需要坐标值一定相等,也不大可能,只要在精度许可的前提下,给出一个误差允许范围即可。3.2.6 多边形填充区域是指相互连通的一组像素的集合。区域通常由一个封闭的轮廓来定义,处于一个封闭轮廓线内的所有像素点即构成一个区域。所谓区域填充就是将区域内的像素置成新的颜色值或图案。我们以图3-3所示的多边形为例,建立其边表ET,如图3-4所示。 图3-3 多边形 图3-4 多边形的边表由图3-3和图3-4可得其对应的活动边表(AET),图3-5列出了图3-3中多边形在扫描线为4、5、6时的AET表。图3-5 活动边表由此可得如下算法:(1)根据给出的顶点坐标数据,按递增顺序建立如图3-4所示的ET表。(2)根据AET指针,使之为空。(3)使(为顶点坐标中最小值)。(4)反复做下述各步,直至(顶点坐标中的最大值)或ET与AET为空:将ET表加入到AET中,并保持AET链中的记录按值增大排序;对扫描线依次成对取出AET中值,并在每对之间填上所要求的颜色或图案;从AET表中删去的记录;对保留下来的AET中的每一个记录,用代替,并重新按递增排序;使,以便进入下一轮循环。3.3二维图形的可视化原理分析3.3.1系统的界面设计本系统的界面较为简单,共有三个部分:第一部分是菜单栏,这部分是通过简单的菜单命令来实现图形的生成与变化,它主要通过Resource View工程编辑器中Menu控件来实现,通过单击菜单命令的方式使图形演示一步一步的执行。第二部分是工具栏,这部分是通过简单直观的动态按钮来实现图形的生成与变化,其目的是让学习者更简单更方便的来实现图形是生成与变换。该部分是通过Resource View工程编辑器中Toolbar控件来实现。第三部分是二维图形生成过程的动态演示,该部分主要是分步显示各种图形的动态生成过程,目的是让学习者明白各种图形的每一步是怎样生成的,帮助学习者理解算法本质,这一部分用一个视图窗口类CDemoView来实现。二维图形变换演示系统如图3-6:图3-6系统运行界面3.4程序运行实例图3-5至图3-10是本文中部分二维图形的可视化的实例。它们分别是椭圆的生成(直线、矩形的可视化分别见附录中图1-1和图1-2)、二维图形的错切变换(二维图形的缩放、平移、旋转以及反射的可视化分别见附录中图1-3到图1-5)、直线剪切、多边形填充、三次B样条曲线以及Bezier曲线的动态生成与变换过程的可视化。 图3-7椭圆的可视化 图3-8 二维图形错切直线裁剪的可视化,还有多边形填充,三次B样条曲线和Bezier曲线。在这些图中,直线,矩形和椭圆的可视化原理都一样,对于平移变换、比例变换、旋转变换、反射变换和错切变换,本文分别用正三角形和矩形作为样例演示了其变化过程;对于直线裁剪和多边形填充,本文根据上文提出的原理,采用相似的界面和演示窗口,分别演示了它们的变换过程。 图3-9 直线剪裁 图3-10 多边形填充 图3-11 三次B样条曲线 图3-12 Bezier曲线4 三维图形的基本几何变换4.1概述我们在前一章里提到,本系统在对计算机图形学的算法可视化的时候,分别对二维图形和三维图形运用了不同的方法来实现,所以本文将把二维图形和三维图形的可视化分开来讨论,前一章探讨了二维图形的可视化的方法,在这一章将主要探讨三维图形的可视化方法。三维图形主要包括三维变换,其中三维变换包括三维平移变换,三维比例变换,三维旋转变换,三维反射变换,三维错切变换等。除了介绍三维变换和曲面以外,我们在这章还要简要的谈谈真实感图形的实现。三维图形的可视化与二维图形的可视化有所不同,二维的空间已经无法满足图形变换的需求,而只能通过建立了三维的坐标系来实现一系列变化,下面我们将对这些三维图形的可视化原理逐一分析。4.2三维图形的生成算法原理分析4.2.1三维变换1.概述三维图形生成与变换是计算机图形学中的一个基本问题,也是计算机图形学一个最重要的部分。三维图形生成比二维图形要复杂的多,其根本原因在于我们的图形输入设备和输出设备基本上都是二维的,用这些二维的图形设备去表现空间三维实体自然会增加许多复杂性,尤其是需要运用许多与处理二维图形不同的方法去处理三维图形。这里我们以二维图形基本的平移、比例和旋转变换组合为基础,通过矩阵的相乘或者连接来构造三维所需矩阵,从而来实现三维图形图像的显示、处理和形体的构造。基于二维图形变换,在三维图形变换中我们同样用齐次坐标法来表示三维图形中的点,因此,对于三维空间点需要用4个数来表示,而相应的变换矩阵为阶矩阵,我们用表示变换前三维空间的一个点,用表示变换后的结果,则空间点的变换式为:式中为三维图形变换矩阵,它是阶方阵,即我们将阶方阵分成4个子矩阵,其各自作用如下:产生比例,对称,旋转,错切四种基本变换。:产生沿三个轴向的平移变换。:产生透视投影变换。:产生全比例变换。就变换矩阵和坐标轴的关系来说:T的第一列元素主管X轴方向坐标的变化,第二列元素主管Y轴方向坐标的变化,第三列元素主管Z轴方向坐标的变化。而第四列元素将影响透视变换。下面我们分别介绍各种变换的算法原理。2.平移变换三维图形上的点,沿X 、Y 、Z轴分别移动时,所得新点的坐标为:程序设计为:xw = x; yw = y; zw = zx = xw + txy = yw + tyz = zw + tz三维坐标点可用齐次坐标表示为。当设X 、Y 、Z轴的移动量分别为时,齐次坐标变换矩阵表达式为: 3.比例变换在三维坐标系中,图形上的点以坐标原点为中心分别沿X 、Y 、Z轴放大或缩小倍、倍、倍时,所得新点的坐标,的值分别为:程序设计为:比例变换的齐次坐标矩阵表达式为:当时,矩阵变换式为:4.旋转变换三维旋转变换是指空间立体绕坐标轴旋转角,正负按右手定则确定,即右手拇指指向转轴正向,其余4个手指指向便是角正角,如图4-1。旋转变换前后立体的大小和形状不变,只是空间位置相对原位置发生了变化。当空间立体绕某一坐标轴旋转时,立体上各点在此轴坐标值不变,而在该坐标轴所垂直的另两坐标轴所组成的坐标平面上的坐标值相当于一个二维的旋转变换。图4-l三维旋转变换角符号根据二维平面的旋转,我们可以得到在三维空间的旋转变换矩阵表示。l)绕X轴旋转角的矩阵表示如下:变换结果为:即: 2) 绕Y轴旋转角的矩阵表示如下:变换结果为:即: 3)绕Z轴旋转的矩阵表示如下:变换结果为:即: 5.错切变换图形沿X轴、Y轴、Z轴错切时,其变换矩阵的一般表达式为:根据矩阵中其余六个元素之一为0,可以生成六种不同的错切变换。l)沿X方向含Y错切错切平面沿X轴方向滑移,变换矩阵为:2)沿Z方向含Y错切错切平面沿Z轴方向滑移。变换矩阵为:3)沿Y方向含X错切错切平面沿Y轴方向滑移,变换矩阵为:4)沿X方向含Z错切错切平面沿轴X轴方向滑移,变换矩阵为:5)沿Y方向含Z错切错切平面沿Y轴方向滑移,变换矩阵为:6)沿Z方向含X错切错切平面沿Z轴方向滑移,变换矩阵为:为了直观演示三维图形的错切变换,下图提供了一些截图样例:图4-2 X方向错切 图4-3 Y方向错切 图4-4 Z方向错切4.2.2曲面曲面包括贝塞尔(Bezier)曲面、抛物面以及B样条曲面等,本文主要讨论贝塞尔(Bezier)曲面的生成与动态演示。由Bezier曲线可以容易地得到张量积Bezier曲面,在空间给定个点,称下列张量积形式的参数曲面为次的Bezier曲面。 (4.1)在式4.1中,是Bezier曲面的基函数。依次用线段连接点列中相邻两点所形成的空间网格,称之为Bezier曲面的特征网格。Bezier曲面的矩阵表示为:在实际应用中m和n的取值小于4,本文在可视化过程中。4.3三维图形的可视化原理分析4.3.1三维变换1. 坐标系的建立及转换任何一个图形都必须存在于一个参考坐标系中,本文为三维图形采用的是正等轴测坐标系。该坐标系如图4-5所示在该坐标系中,将Y正方向设定为水平向左,Z轴正方向为竖直向上,X轴的正方向为与水平方向成45度角。我们知道,正等轴测坐标系的三个轴向变形系数相等。即:其中,分别为轴,轴,轴的轴向变形系数。于是,根据斜轴测投影变换的矩阵,可得出下列方程式:解得:取 最后可以得到正等轴测的投影变换矩阵为:于是我们可以得到任意的一个三维点(x,y,z)经过变换后在平面上的坐标值(XX,YY,ZZ),它门之间的转换计算公式如下:通过计算后,所有的YY值都等于0,这是因为在平面上只能显示二维坐标。最后我们还要将这个坐标转换为计算机的设备坐标系中的坐标。假设设备坐标中的坐标是(xx,yy),它们之间的转换关系公式如下:其中,分别表示曲面坐标系的坐标原点在设备坐标系中的相对坐标。图4-5 三维坐标2.算法可视化的动态演示算法可视化的任务就是,动态演示图形变化的全过程,并将控制命令的改变而引起的影响以改变图形的形式直观地呈现在读者者面前,深入体会每个控件在图形变换中的功能及作用,从而达到透彻理解算法本身的目的。以三维变换中的平移变换为例,在三维变换矩阵中,控制命令分别代表三维图形向左、向右、向上、向下、与X正半轴成45°向上、与X负半轴成45°向下这六个移动方向,动态演示时,本文将这六个控件与图形的变化联系起来,做到根据设置的平移方向来决定每次动态演示时的平移方向。本文中实现三维交换的流程图如图4-6所示:图4-6 三维交换的流程图Step 1:判断动态演示的类型,主要有三维平移变换,旋转变换,比例变换,错切变换,反射变换等。Step 2:根据不同的变换类型,通过菜单控件或者工具控件来调用它们的成员函数,并在窗口视图中做出相应的响应。在动态演示视图中,主要是画出变换前的坐标系以及三维图形,为下一步变换做好准备。Step3:动态演示开始。Step4:根据动态演示,在视图窗口中做出相应的变化。在动态演示视图中,通过控件来显示相应的变换过程,每个控件对应着一种变化,这样以来,读者可以直观看见图形变换的过程,能够比较方便的对前后的图形特征进行对比,从中发现变换的实质。Step 5:判断演示是否结束。如果结束,则进入Step 6;否则返回Setp3,循环演示。Step 6:退出动态演示。4.3.2曲面1.坐标系的建立及转换曲面的坐标系与三维变换的坐标系的建立方法相同,都是采用的是正等轴测坐标系。曲面的坐标系如图4-7所示,因此,其转变过程与三维图形坐标系相同,此处不再进行详解。 图4-7曲面的坐标系 图4-8 Bezier曲面2.曲面的动态演示的实现曲面的动态演示主要是曲面生成过程的动态演示。其中算法的动态演示原理和二维图形的算法文字演示原理一样,都是通过定义一个数组用来存放程序的每条执行语句,循环输出到窗口,从而达到动态演示的目的。下面本文以Bezier曲面为例来

    注意事项

    本文(计算机图形学演示系统.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开