当前位置:文档之家› 计算机图形学课程设计 图形绘制变换

计算机图形学课程设计 图形绘制变换

计算机图形学实验报告课程名称 : 计算机图形学实验名称 :图形绘制与变换学院 : 电子信息工程学院专业 : 计算机科学与技术班级 : 11计科本 01班学号 : ************ ** : ****** : ***二零一四年目录一、引言------------------------------------------------------------------------------------------------------------- 3二、设计需求 ------------------------------------------------------------------------------------------------------ 32.1 设计目标----------------------------------------------------------------------------------------------- 32.2 设计环境----------------------------------------------------------------------------------------------- 32.2.1 VC++6.0-------------------------------------------------------------------------------------- 32.2.2 MFC-------------------------------------------------------------------------------------------- 42.3 设计题目及要求 ------------------------------------------------------------------------------------ 42.4 总体流程图 ------------------------------------------------------------------------------------------ 4三、课程设计原理 ------------------------------------------------------------------------------------------------ 53.1 实现的算法-------------------------------------------------------------------------------------------- 53.1.2 Bresenham算法画直线 -------------------------------------------------------------------- 53.1.3 中心点算法画圆和椭圆-------------------------------------------------------------------- 53.2 图形变换的基本原理-------------------------------------------------------------------------------- 73.2.1 平移变换-------------------------------------------------------------------------------------- 73.2.2 旋转变换 ------------------------------------------------------------------------------------ 83.2.3 比例变换 ------------------------------------------------------------------------------------ 8四、总体设计与功能实现 --------------------------------------------------------------------------------------- 84.1 主要界面设计----------------------------------------------------------------------------------------- 84.2 设置颜色界面----------------------------------------------------------------------------------------- 84.2.1 界面设置代码-------------------------------------------------------------------------------- 84.2.2 运行结果-------------------------------------------------------------------------------------- 94.3 二维线画图元实现----------------------------------------------------------------------------------- 94.4 画多边形功能的实现 ---------------------------------------------------------------------------- 134.5 画Bezier曲线功能的实现--------------------------------------------------------------------- 144.6 二维图形变换的实现 ---------------------------------------------------------------------------- 164.7 三维图形的变换 ---------------------------------------------------------------------------------- 17五、实验心得体会一、引言计算机图形学(Computer Graphics,简称CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。

简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。

是计算机科学的一个分支领域,主要关注数字合成与操作视觉的图形内容。

计算机图形学研究的是应用计算机产生图像的所有工作,不管图像是静态的还是动态的,可交互的还是固定的,等等。

图形API是允许程序员开发包含交互式计算机图形操作的应用而不需要关注图形操作细节或任务系统细节的工具集。

计算机图形学有着广泛的应用领域,包括物理、航天、电影、电视、游戏、艺术、广告、通信、天气预报等几乎所有领域都用到了计算机图形学的知识,这些领域通过计算机图形学将几何模型生成图像,将问题可视化从而为各领域更好的服务。

计算机图形学利用计算机产生让人赏心悦目的视觉效果,必须建立描述图形的几何模型还有光照模型,再加上视角、颜色、纹理等属性,再经过模型变换、视图变换、投影操作等,这些步骤从而实现一个完整的OpenGL程序效果。

OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植。

计算机图形学通过应用OpenGL的功能,使得生成的图形效果具有高度真实感。

学习计算机图形学的重点是掌握OpenGL在图形学程序中的使用方法。

事实上,图形学也把可以表示几何场景的曲线曲面造型技术和实体造型技术作为其主要的研究内容。

同时,真实感图形计算的结果是以数字图像的方式提供的,计算机图形学也就和图像处理有着密切的关系。

通过21世纪是信息的时代,在日新月异的科技更新中相信计算机会发挥越来越重要的作用,计算机图形学也会在更多的领域所应用,虽然我国在这方面还比较薄弱,但相信会有越来越好的时候的。

二、设计需求2.1 设计目标以图形学算法为目标,深入研究。

继而策划、设计并实现一个能够表现计算机图形学算法原理的或完整过程的演示系统,并能从某些方面作出评价和改进意见。

通过完成一个完整程序,经历策划、设计、开发、测试、总结和验收各阶段,达到:巩固和实践计算机图形学课程中的理论和算法;学习表现计算机图形学算法的技巧;培养认真学习、积极探索的精神。

2.2 设计环境2.2.1 VC++6.0VC++6.0是 Microsoft 公司推出的一个基于 Windows 系统平台、可视化的集成开发环境,它的源程序按 C++语言的要求编写,并加入了微软提供的功能强大的 MFC(Microsoft Foundation Class)类库。

MFC 中封装了大部分 Windows API 函数和 Windows 控件,它包含的功能涉及到整个 Windows 操作系统。

MFC 不仅给用户提供了 Windows 图形环境下应用程序的框架,而且还提供了创建应用程序的组件,这样,开发人员不必从头设计创建和管理一个标准 Windows 应用程序所需的程序,而是从一个比较高的起点编程,故节省了大量的时间。

另外,它提供了大量的代码,指导用户编程时实现某些技术和功能。

因此,使用VC++提供的高度可视化的应用程序开发工具和 MFC 类库,可使应用程序开发变得简单。

2.2.2 MFCMFC(Microsoft Foundation Classes) ,是一个微软公司提供的类库( class libraries)以 C++类的形式封装了 Windows 的 API,,它包含了窗口等许多类的定义。

各种类的集合构成了一个应运程序的框架结构,以减少应用程序开发人员的工作量。

其中包含的类包含大量 Windows 句柄封装类和很多 Windows 的内建控件和组件的封装类。

MFC 6.0 版本封装了大约 200 个类,其中的一些可以被用户直接使用。

例如CWnd 类封装了窗口的功能,包括打印文本、绘制图形及跟踪鼠标指针的移动等;CsplitterWnd 类是从 CWnd 类派生出来的,继承了基类或称父类 CWnd 类的所有特性,但增加了自己的功能,实现拆分窗口,使窗口至少可被拆分成两个窗口,用户可以移动两个窗口之间的边框来改变窗口的大小;CtoolBar 类可以定义工具栏等。

相关主题