第9章 简单交互式图形系统的设计与实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CClientDC 类 用 来 创 建 和 破 坏 一 个 设 备 环 境 , 它在堆栈中建立。
CWindowDC 类 维 护 窗 口 的 非 客 户 区 , 和
CClientDC类一样。
CPaintDC 类 在 构 造 函 数 中 调 用
CWnd∷BeginPaint()获得设备环境, 以便在有效的客户 区进行绘图。
1) CMainFrame
主窗口类(CMainFrame)主要定制图标、 工具 条的建立、 显示和交互, 其定义代码如下:
第9章 简单交互式图形系统的设计与 实现
class CMainFrame: public CFrameWnd { protected: // create from serialization only CMainFrame(); DECLARE -DYNCREATE(CMainFrame) public: // Attributes public: CToolBar * m -pToolsToolbar; // Operations public: // Overrides
第9章 简单交互式图形系统的设计与 实现
CMetaFileDC类创建一个元文件, 可以把它看 做是一个屏幕设备, 但其实它是一个磁盘文件。 产生的 文件可以存放在磁盘中, 以后还可以读入, 进行修改。
第9章 简单交互式图形系统的设计与 实现 2. 图形对象类 CBitmap类建立和控制“位图”对象(内存中的位图)。 CBrush类建立和控制“刷子”对象。 填充图形和绘图的刷子。 CFont类建立与控制字体对象。 CPalette类建立和控制调色板对象。 CPen类建立和控制画笔对象, 画笔是图形的边界模式。 CRgn类建立和控制GDI绘图设备区域对象。
第9章 简单交互式图形系统的设计与 实现
系统程序模块
文档管理
窗口管理
图形编辑
新
保
打
建
存
印
图形 绘制
图形 变换
区域 填充
画面编辑
系统面
退
区域管理
板管理
出
图 9.ቤተ መጻሕፍቲ ባይዱ 系统组成结构
第9章 简单交互式图形系统的设计与 实现
9.2 系统设计与实现
9.2.1 图形编程的基础知识 VC++是一种面向对象程序设计语言, 基于面
第9章 简单交互式图形系统的设计与 实9现.2.2 程序设计
1. 类的设计
本系统主要用到了以下一些类:
CJhtxsApp, CMainFrame, CJhtxsView, CJhtxsDoc, CDialog, Cnewbmp 其中, CJhtxsApp 是应 用程序类, 支持应用程序的建立和基本交互; CMainFrame是应用程序主窗口框架类, 用来实现主窗口 的功能; CJhtxsView是应用程序主窗口视图类, 支持视 图的功能实现; CJhtxsDoc为文档类,
第9章 简单交互式图形系统的设计与 实现
第 9 章 简单交互式图形系统的设计与实现
9.1 系统简介 9.2 系统设计与实现 习题
第9章 简单交互式图形系统的设计与 实现
9.1 系统简介
9.1.1 系统用户界面 系统运行界面如图9.1所示。 本系统以Windows画板为设计原型, 在功能上,
给用户提供了画线、 框、 圆、 多边形、 三维立体、 曲线、 填充以及动画、 分形算法程序实现演示等基本 操作, 填充方式根据图形学的概念提供了两种方式, 即 多边形填充和种子填充。
第9章 简单交互式图形系统的设计与 实现
图 9.1 系统运行界面
第9章 简单交互式图形系统的设计与 实现
9.1.2 系统结构
本系统采用树状的层次结构进行组织(如图 9.2所示), 主要包括文档管理、 窗口管理、 图形编辑 管理三大功能模块。 其中文档管理主要完成文档的新建、 保存、 输出打印等功能; 窗口管理定义系统界面风格, 提供对画面编辑区域及工具条、 系统状态面板、 菜单 面板等的显现与隐藏的管理; 图形编辑管理模块主要用 于完成直线、 曲线、 封闭区域等的绘制、 填充、 几 何变换和三维图形的生成、 投影、 消隐及显现。
第9章 简单交互式图形系统的设计与 实现
CJhtxsAppp
CMainFrame
CJhtxsView
CJhtxsDoc
CDialog
Cnewbmp
CMaterial
CSolid
CLightSource
CVertex
CRect
CLoop
图 9.3 各类之间的对应关系
CLine
第9章 简单交互式图形系统的设计与 实现
第9章 简单交互式图形系统的设计与 实现
用于实现文档的功能; CDialog是工具箱类, 提供人机 消 息 反 馈 平 台 ; Cnewbmp 为 对 象 空 间 类 , 聚 集 着 CSolid( 实 体 类 ) 、 CRect( 面 类 ) 、 CLoop( 环 类 ) 、 Cline(边类)、 CVertex(顶点类)、 CMaterial(材质类)、 CLightSource(光源类)等所有类的对象。 上述各类之间 的对应关系结构如图9.3所示。
向对象程序设计语言的程序设计方法都支持三种基本的 活动: 识别对象(Object)和类(Class), 描述对象和类之 间的关系, 以及通过描述每个类的功能定义对象的行为。
第9章 简单交互式图形系统的设计与
实现
1. 设备环境类
CDC类封装了Windows API中用来画图的函数, 同时该类负责维护设备环境。
第9章 简单交互式图形系统的设计与 实现 // ClassWizard generated virtual function overrides
//{{AFX -VIRTUAL(CMainFrame) virtual BOOL PreCreateWindow(CREATESTRUCT& cs); //}}AFX -VIRTUAL // Implementation public: virtual ~CMainFrame(); #ifdef -DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif