计算机图形学简单画图工具.docVIP

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北京联合大学 实验(实习、实训)报告 课程(项目)名称: 实用计算机图形学实训 学 院: 师范学院 专 业:计算机科学与技术 班 级: 学 号: 姓 名: 成 绩: 年  月  日 图形软件开发 一、任务与目的 实验任务为在理解直线、圆、方、区域填充等的基础上,进行小型图形应用软件的开发。综合运用所学过的知识掌握小型图形软件的绘制。软件的主要功能包括图形的绘制,颜色的设置和保存等功能。本软件具有使用性、稳定性、易用性,和可维护性的特点,用户可以根据需要对其功能进行填充、完善与修改,使其符合自己的要求。 原理(条件) 2.1、所用的软件 VC++6.0 是 Microsoft 公司推出的一个基于 Windows 系统平台、可视化的 集成开发环境,它的源程序按 C++语言的要求编写,并加入了微软提供的功能 强大的 MFC(Microsoft Foundation Class)类库。MFC 中封装了大部分 Windows API 函数和 Windows 控件,它包含的功能涉及到整个 Windows 操作系统。MFC 不仅给用户提供了 Windows 图形环境下应用程序的框架, 而且还提供了创建应 用程序的组件,这样,开发人员不必从头设计创建和管理一个标准 Windows 应 用程序所需的程序,而是从一个比较高的起点编程,故节省了大量的时间。另 外,它提供了大量的代码,指导用户编程时实现某些技术和功能。因此,使用VC++提供的高度可视化的应用程序开发工具和 MFC 类库,可使应用程序开发变 得简单。 MFC(Microsoft Foundation Classes) ,是 一 个 微 软 公 司 提 供 的 类 库 ( class libraries)以 C++类的形式封装了 Windows 的 API, , 它包含了窗口等许多类的定义。各种类的集合构成了一个应运程序的框架结构,以减少应用程序开发人员的工作 量。其中包含的类包含大量 Windows 句柄封装类和很多 Windows 的内建控件和组 件的封装类。MFC 6.0 版本封装了大约 200 个类,其中的一些可以被用户直接使用。例如CWnd 类封装了窗口的功能,包括打印文本、绘制图形及跟踪鼠标指针的移动等;CsplitterWnd 类是从 CWnd 类派生出来的,继承了基类或称父类 CWnd 类的所 有特 性,但增加了自己的功能,实现拆分窗口,使窗口至少可被拆分成两个窗口,用户 可以移动两个窗口之间的边框来改变窗口的大小;CtoolBar 类可以定义工具栏等。MFC 命名的惯例是类的名字通常是由“C”打头;成员变量使用前缀“m_”,接着使用一个字母来指明数据类型,然后是变量的名称;所有的单词用大写字母开头。 2.2、CDC类 CDC 是设备环境类的基类直接由 CObject 派生。是 GDI 的关键元素,它代表了物理设备。每一个 C++设备环境对象都有相对应 Windows 设备环境,并通过一个 32 位类型的 HDC 句柄来标识。CDC 类的虚拟性使我们可以很容易的做到编写同时适用 于多种设备的代码。 使用 CDC 类可以使我们的作图不用关心设备的问题。CClientDC 和 CWindowDC 是显示设备环境类,都是由 CDC 派生而来,区别在于 CClientDC 是窗 口的客户区不包括边框、 标题栏和菜单栏, (0, 指客户区域的左上角。 0) CWindowDC 的(0,0)指整个屏幕的左上角,这意味着我们可以在显示器的任意地方绘图,包 括窗口边框、标题栏和菜单栏等等。 在编写鼠标绘图的代码之前,首先要确定如何用鼠标完成绘图。以用鼠标绘制直线段为例:首先将鼠标的光标移动到直线段的一个端点处,按下鼠标左键,然后按住鼠标左键不放,移动鼠标光标到直线段的另一个端点处,此时松开鼠标左键,就完成了用鼠标绘制直线段,应用程序会在两个端点之间绘制一条直线段。绘制椭圆和椭圆区域比较类似,先后确定的是椭圆的外接矩形的两个对角点。而对于绘制矩形区域,则确定的是矩形区域的两个对角点。 2.3、Bresenham算法 Bresenham算法1965年提出,基本原理是:借助于一个误差量(直线与当前实际绘制像素点的距离),来确定下一个像素点的位置。算法的巧妙之处在于采用增量计算,使得对于每一列,只要检查误差量的符号,就可以确定该下一列的像素位置。 2.4、鼠标 为了在应用程序中响应用户的鼠标动作,就需要在编写应用程序时选择响应鼠标消息并编写其对应的处理函数。 针对用户使用鼠标的一些基本操作,比如鼠标的单击、双击、移动等,Windows

文档评论(0)

0520 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档