- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章简单交西互式图形系统的设计与实现
第 9 章 简单交互式图形系统的设计与实现 9.1 系统简介 9.2 系统设计与实现 习题 9.1 系统简介 9.1.1 系统用户界面 系统运行界面如图9.1所示。 本系统以Windows画板为设计原型, 在功能上, 给用户提供了画线、 框、 圆、 多边形、 三维立体、 曲线、 填充以及动画、 分形算法程序实现演示等基本操作, 填充方式根据图形学的概念提供了两种方式, 即多边形填充和种子填充。 9.1.2 系统结构 本系统采用树状的层次结构进行组织(如图9.2所示), 主要包括文档管理、 窗口管理、 图形编辑管理三大功能模块。 其中文档管理主要完成文档的新建、 保存、 输出打印等功能; 窗口管理定义系统界面风格, 提供对画面编辑区域及工具条、 系统状态面板、 菜单面板等的显现与隐藏的管理; 图形编辑管理模块主要用于完成直线、 曲线、 封闭区域等的绘制、 填充、 几何变换和三维图形的生成、 投影、 消隐及显现。 9.2 系统设计与实现 9.2.1 图形编程的基础知识 VC++是一种面向对象程序设计语言, 基于面向对象程序设计语言的程序设计方法都支持三种基本的活动: 识别对象(Object)和类(Class), 描述对象和类之间的关系, 以及通过描述每个类的功能定义对象的行为。 1. 设备环境类 CDC类封装了Windows API中用来画图的函数, 同时该类负责维护设备环境。 CClientDC类用来创建和破坏一个设备环境, 它在堆栈中建立。 CWindowDC类维护窗口的非客户区, 和CClientDC类一样。 CPaintDC类在构造函数中调用CWnd∷BeginPaint()获得设备环境, 以便在有效的客户区进行绘图。 CMetaFileDC类创建一个元文件, 可以把它看做是一个屏幕设备, 但其实它是一个磁盘文件。 产生的文件可以存放在磁盘中, 以后还可以读入, 进行修改。 2. 图形对象类 CBitmap类建立和控制“位图”对象(内存中的位图)。 CBrush类建立和控制“刷子”对象。 填充图形和绘图的刷子。 CFont类建立与控制字体对象。 CPalette类建立和控制调色板对象。 CPen类建立和控制画笔对象, 画笔是图形的边界模式。 CRgn类建立和控制GDI绘图设备区域对象。 9.2.2 程序设计 1. 类的设计 本系统主要用到了以下一些类: CJhtxsApp, CMainFrame, CJhtxsView, CJhtxsDoc, CDialog, Cnewbmp其中, CJhtxsApp 是应用程序类, 支持应用程序的建立和基本交互; CMainFrame是应用程序主窗口框架类, 用来实现主窗口的功能; CJhtxsView是应用程序主窗口视图类, 支持视图的功能实现; CJhtxsDoc为文档类, 用于实现文档的功能; CDialog是工具箱类, 提供人机消息反馈平台; Cnewbmp为对象空间类, 聚集着CSolid(实体类)、 CRect(面类)、 CLoop(环类)、 Cline(边类)、 CVertex(顶点类)、 CMaterial(材质类)、 CLightSource(光源类)等所有类的对象。 上述各类之间的对应关系结构如图9.3所示。 1) CMainFrame 主窗口类(CMainFrame)主要定制图标、 工具条的建立、 显示和交互, 其定义代码如下: class CMainFrame: public CFrameWnd { protected: // create from serialization only CMainFrame(); DECLARE-DYNCREATE(CMainFrame) public: // Attributes public: CToolBar * m-pToolsToolbar; // Operations public: // Overrides // ClassWizard generated virtual function overrides //{{AFX-VIRTUAL(CMainFrame) virt
您可能关注的文档
- 白血病含融合基因染系色体慢粒预处理.ppt
- 宝健中字国产品.ppt
- 贝类海对鲜的认识与研究.ppt
- 背景清新淡雅蝶鸟恋花篇背景图,,高雅素洁的动感页面,自动播洗放便能体味.ppt
- 八下生物723基因的显点性和隐形.ppt
- 百年学典2015高中生物广东专用学业水平浩测试配套课件:专题十四人体的内环境与稳态.ppt
- 氨基酸营养与肠就道健康.ppt
- 八年级生物一下第二章第二节基因在亲子代间的传递课件人教版.ppt
- 安全经验分享用工电安全知识.ppt
- 八年级生工物生物的遗传和变异1.ppt
- 2025年中山市沙溪镇人民政府所属事业单位招聘11人笔试备考题库及参考答案详解一套.docx
- 2025年中山市横栏镇人民政府所属事业单位第二期招聘笔试高频难、易错点备考题库及参考答案详解一套.docx
- 2025年中山市横栏镇人民政府所属事业单位第二期招聘笔试高频难、易错点备考题库含答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试高频难、易错点备考题库及完整答案详解1套.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试高频难、易错点备考题库参考答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库附答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试高频难、易错点备考题库附答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库附答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库及答案详解一套.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库及完整答案详解1套.docx
文档评论(0)