当前位置:
文档之家› 第9章 简单交互式图形系统的设计与实现
第9章 简单交互式图形系统的设计与实现
第9章 简单交互式图形系统的设计与 实9现.2.2 程序设计
1. 类的设计
本系统主要用到了以下一些类:
CJhtxsApp, CMainFrame, CJhtxsView, CJhtxsDoc, CDialog, Cnewbmp 其中, CJhtxsApp 是应 用程序类, 支持应用程序的建立和基本交互; CMainFrame是应用程序主窗口框架类, 用来实现主窗口 的功能; CJhtxsView是应用程序主窗口视图类, 支持视 图的功能实现; CJhtxsDoc为文档类,
第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
第9章 简单交互式图形系统的设计与 实现
CMetaFileDC类创建一个元文件, 可以把它看 做是一个屏幕设备, 但其实它是一个磁盘文件。 产生的 文件可以存放在磁盘中, 以后还可以读入, 进行修改。
第9章 简单交互式图形系统的设计与 实现 2. 图形对象类 CBitmap类建立和控制“位图”对象(内存中的位图)。 CBrush类建立和控制“刷子”对象。 填充图形和绘图的刷子。 CFont类建立与控制字体对象。 CPalette类建立和控制调色板对象。 CPen类建立和控制画笔对象, 画笔是图形的边界模式。 CRgn类建立和控制GDI绘图设备区域对象。
第9章 简单交互式图形系统的设计与 实现
第 9 章 简单交互式图形系统的设计与实现
9.1 系统简介 9.2 系统设计与实现 习题
第9章 简单交互式图形系统的设计与 实现
9.1 系统简介
9.1.1 系统用户界面 系统运行界面如图9.1所示。 本系统以Windows画板为设计原型, 在功能上,
给用户提供了画线、 框、 圆、 多边形、 三维立体、 曲线、 填充以及动画、 分形算法程序实现演示等基本 操作, 填充方式根据图形学的概念提供了两种方式, 即 多边形填充和种子填充。
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章 简单交互式图形系统的设计与 实现
图 9.1 系统运行界面
第9章 简单交互式图形系统的设计与 实现
9.1.2 系统结构
本系统采用树状的层次结构进行组织(如图 9.2所示), 主要包括文档管理、 窗口管理、 图形编辑 管理三大功能模块。 其中文档管理主要完成文档的新建、 保存、 输出打印等功能; 窗口管理定义系统界面风格, 提供对画面编辑区域及工具条、 系统状态面板、 菜单 面板等的显现与隐藏的管理; 图形编辑管理模块主要用 于完成直线、 曲线、 封闭区域等的绘制、 填充、 几 何变换和三维图形的生成、 投影、 消隐及显现。
第9章 简单交互式图形系统的设计与 实现
用于实现文档的功能; CDialog是工具箱类, 提供人机 消 息 反 馈 平 台 ; Cnewbmp 为 对 象 空 间 类 , 聚 集 着 CSolid( 实 体 类 ) 、 CRect( 面 类 ) 、 CLoop( 环 类 ) 、 Cline(边类)、 CVertex(顶点类)、 CMaterial(材质类)、 CLightSource(光源类)等所有类的对象。 上述各类之间 的对应关系结构如图9.3所示。
第9章 简单交互式图形系统的设计与 实现
CJhtxsAppp
CMainFrame
CJhtxsView
CJhtxsDoc
CDialog
Cnewbmp
CMaterial
CSolid
CLightSource
CVertex
CRect
CLoop
图 9.3 各类之间的对应关系
CLine
第9章 简单交互式图形系统的设计与 实现
第9章 简单交互式图形系统的设计与 实现
系统程序模块
文档管理
窗口管理
图形编辑
新
保
打
建
存
印
图形 绘制
图形 变换
区域 填充
画面编辑
系统面
退
区域管理
板管理
出
图 9.2 系统组成结构
第9章 简单交互式图形系统的设计与 实现
9.2 系统设计与实现
9.2.1 图形编程的基础知识 VC++是一种面向对象程序设计语言, 基于面
CClientDC 类 用 来 创 建 和 破 坏 一 个 设 备 环 境 , 它在堆栈中建立。
CWindowDC 类 维 护 窗 口 的 非 客 户 区 , 和
CClientDC类一样。
CPaintDC 类 在 构 造 函 数 中 调 用
CWnd∷BeginPaint()获得设备环境, 以便在有效的客户 区进行绘图。
向对象程序设计语言的程序设计方法都支持三种基本的 活动: 识别对象(Object)和类(Class), 描述对象和类之 间的关系, 以及通过描述每个类的功能定义对象的行为。
第9章 简单交互式图形系统的设计与
实现
1. 设备环境类
CDC类封装了Windows API中用来画图的函数, 同时该类负责维护设备环境。