《计算机图形学课程设计图形绘制变换》由会员分享,可在线阅读,更多相关《计算机图形学课程设计图形绘制变换(25页珍藏版)》请在金锄头文库上搜索。
1、0计算机图形学 实验报告课程名称 : 计算机图形学 实验名称 : 图形绘制与变换 学 院 : 电子信息工程学院 专 业 : 计算机科学与技术 班 级 : 11 计科本 01 班 学 号 : 111102020103 姓 名 : 张慧 指导教师 : 王征风 二零一四年二零一四年1目录目录一、引言一、引言 -3二、设计需求二、设计需求 -42.12.1 设计目标设计目标-42.22.2 设计环境设计环境-42.2.12.2.1 VC+6.0VC+6.0-42.2.22.2.2 MFCMFC-42.32.3 设计题目及要求设计题目及要求 -52.42.4 总体流程图总体流程图 -5三、课程设计原理三
2、、课程设计原理 -53.13.1 实现的算法实现的算法-53.1.23.1.2 BresenhamBresenham 算法画直线算法画直线 -63.1.33.1.3 中心点算法画圆和椭圆中心点算法画圆和椭圆-63.23.2 图形变换的基本原理图形变换的基本原理-83.2.13.2.1 平移变换平移变换-83.2.23.2.2 旋转变换旋转变换 -83.2.33.2.3 比例变换比例变换 -9四、总体设计与功能实现四、总体设计与功能实现 -94.14.1 主要界面设计主要界面设计-94.24.2 设置颜色界面设置颜色界面-94.2.14.2.1 界面设置代码界面设置代码-94.2.24.2.2
3、运行结果运行结果 -104.34.3 二维线画图元实现二维线画图元实现 -104.44.4 画多边形功能的实现画多边形功能的实现-144.54.5 画画 BezierBezier 曲线功能的实现曲线功能的实现 -154.64.6 二维图形变换的实现二维图形变换的实现-164.74.7 三维图形的变换三维图形的变换-18五、实验心得体会五、实验心得体会2一、引言一、引言计算机图形学(Computer Graphics,简称 CG)是一种使用数学算法将二维或三维图形转 化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就是研究如 何在计算机中表示图形、以及利用计算机进行图形的计
4、算、处理和显示的相关原理与算法。 是计算机科学的一个分支领域,主要关注数字合成与操作视觉的图形内容。计算机图形学研 究的是应用计算机产生图像的所有工作,不管图像是静态的还是动态的,可交互的还是固定 的,等等。图形 API 是允许程序员开发包含交互式计算机图形操作的应用而不需要关注图形 操作细节或任务系统细节的工具集。计算机图形学有着广泛的应用领域,包括物理、航天、 电影、电视、游戏、艺术、广告、通信、天气预报等几乎所有领域都用到了计算机图形学的 知识,这些领域通过计算机图形学将几何模型生成图像,将问题可视化从而为各领域更好的 服务。 计算机图形学利用计算机产生让人赏心悦目的视觉效果,必须建立描
5、述图形的几何模型 还有光照模型,再加上视角、颜色、纹理等属性,再经过模型变换、视图变换、投影操作等, 这些步骤从而实现一个完整的 OpenGL 程序效果。OpenGL 是一个开放的三维图形软件包,它 独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植。 计算机图形学通过应用 OpenGL 的功能,使得生成的图形效果具有高度真实感。学习计算机图 形学的重点是掌握 OpenGL 在图形学程序中的使用方法。 事实上,图形学也把可以表示几何 场景的曲线曲面造型技术和实体造型技术作为其主要的研究内容。同时,真实感图形计算的 结果是以数字图像的方式提供的,计算机图形学也就和图
6、像处理有着密切的关系。 通过 21 世纪是信息的时代,在日新月异的科技更新中相信计算机会发挥越来越重要的作用, 计算机图形学也会在更多的领域所应用,虽然我国在这方面还比较薄弱,但相信会有越来越 好的时候的。二、设计需求二、设计需求2.12.1 设计目标设计目标以图形学算法为目标,深入研究。继而策划、设计并实现一个能够表现计算机图形学算法 原理的或完整过程的演示系统,并能从某些方面作出评价和改进意见。通过完成一个完整程 序,经历策划、设计、开发、测试、总结和验收各阶段,达到:巩固和实践计算机图形学课 程中的理论和算法;学习表现计算机图形学算法的技巧;培养认真学习、积极探索的精神。2.22.2 设
7、计环境设计环境2.2.1 VC+6.0 VC+6.0 是 Microsoft 公司推出的一个基于 Windows 系统平台、可视化的 集成开发环 境,它的源程序按 C+语言的要求编写,并加入了微软提供的功能 强大的 MFC(Microsoft Foundation Class)类库。MFC 中封装了大部分 Windows API 函数和 Windows 控件,它包含 的功能涉及到整个 Windows 操作系统。MFC 不仅给用户提供了 Windows 图形环境下应用程 序的框架, 而且还提供了创建应 用程序的组件,这样,开发人员不必从头设计创建和管理 一个标准 Windows 应 用程序所需的
8、程序,而是从一个比较高的起点编程,故节省了大量的3时间。另 外,它提供了大量的代码,指导用户编程时实现某些技术和功能。因此,使用 VC+提供的高度可视化的应用程序开发工具和 MFC 类库,可使应用程序开发变 得简单。2.2.2 MFCMFC(Microsoft Foundation Classes) ,是 一 个 微 软 公 司 提 供 的 类 库 ( class libraries)以 C+类的形式封装了 Windows 的 API, , 它包含了窗口等许多类的 定义。各种类的集合构成了一个应运程序的框架结构,以减少应用程序开发人员的工作 量。 其中包含的类包含大量 Windows 句柄封装类和很多 Windows 的内建控件和组 件的封装类。 MFC 6.0 版本封装了大约 200 个类,其中的一些可以被用户直接使用。例如 CWnd 类封装了 窗口的功能,包括打印文本、绘制图形及跟踪鼠标指针的移动等;CsplitterWnd 类是从 CWnd 类派生出来的,继承了基类或称父类 CWnd 类的所 有特 性,但增加了自己的功能,实 现拆分窗口,使窗口至少可被拆分成两个窗口,