矢量图形系统开发与编程

矢量图形系统开发与编程
作 者: 陈建春
出版社: 电子工业出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  陈建春,34岁,北京交通大学教师、博士。长期从事GIS、MIS、CAD、DSS、通用电子表格系统等项目的研究和开发工作。开发完成了通用多媒体GIS、青藏铁路调度指挥系统、国税纳税申报系统报表制作工具、新建铁路施工指挥系统、地质图形浏览系统、绣花图案编辑系统等。出版过《VisualC++ 开发 GIS 系统——开发实例剖析》、《VisualC++ 高级编程技术——》等。

内容简介

本书是矢量图形系统开发技术和VC++ 编程技术的集合体,并以矢量图形系统的开发实例为主线贯穿全书,全面介绍和分析了MFC程序设计技术和矢量图形系统各功能的开发技术。包括各种MFC辅助工具的使用方法,与图形有关的MFC类,文档和视图的实现,鼠标交互绘图,图形的无级放缩和回溯,图形的选中,图形的删除和文档逆向操作,图形的存储组织,子图、颜色、线型管理,图形打印,图形的旋转、放缩和移动,线型制定和绘制,多边形区域的子图填充,提高图形的放大倍数,大容量的图形数据组织,图形外部接口,图形元素的平面关系计算,区域的相交、相并、剪裁等叠加操作,矢量显示位图,图形的拷贝、剪裁和粘贴,矢量图形系统的网络化等各方面的内容。不论初学者还是高级技术人员,都会从本书中获益。本书的代码适用于VC++5.0到VC++7.0及以后的各版本。本书适用于GIS, CAD, MIS等领域从事软件开发的广大技术人员,也可作为大专院校相关专业的教材。

图书目录

第一篇 VC++程序设计技术要点

第1章 MFC应用程序设计开发工具

1. 1 使用MFC AppWizard

1. 1. I MFC AppWizard的启动

1. 1. 2 利用MFC AppWizard产生MFC应用程序的步骤

1. 2 使用ClassView

1. 2. 1 启动ClassView

1. 2. 2 编辑定位

1. 2. 3 增加类

1. 2. 4 增加类的成员

1. 3 使用ResourceView

1. 3. 1 ResourceView的调用

1. 3. 2 ResourceView工作分析

1. 4 使用FileView

1. 4. 1 打开一个程序项目

1. 4. 2 FileView相关的操作功能

1. 5 使用ClassWizard

1. 5. 1 Windows消息

1. 5. 2 消息处理函数

1. 5. 3 ClassWizard的作用和启动

1. 5. 4 ClassWizard管理消息处理函数

1. 5. 5 ClassWizard管理重载虚函数

1. 5. 6 CiassWizard管理映射变量

1. 5. 7 管理Automation和ActiveX事件

1. 5. 8 重新构造开发项目的ClassWizard工作信息

1. 6 使用DataView

1. 7 管理多个程序项目

1. 8 使用各设计工具进行编程的建议

第2章 MFC应用程序框架

2. 1 MFC应用程序基本框架类和文件组成

2. 1. 1 基本程序框架类

2. 1. 2 应用程序的主要源文件组成

2. 2 MFC应用程序中各个框架类的作用

2. 3 MFC应用程序的执行步骤分析

2. 4 MFC应用程序设计结构体系剖析

2. 4. 1 标准菜单的执行分析

2. 4. 2 修改标准菜单的执行功能

2. 4. 3 MFC应用程序多态性的实现

2. 4. 4 MFC应用程序中各框架类对象的相互调用关系

第二篇 实现基本矢量图形系统

第3章 与绘图有关的MFC类及操作

3. 1 绘图类

3. 1. 1 绘图类简介

3. 1. 2 几个绘图类的主要差别

3. 1. 3 绘图类的使用方法

3. 2 绘图设备类

3. 2. 1 CGdiObject类

3. 2. 2 CPen类

3. 2. 3 CBrush类

3. 2. 4 CFont类

3. 2. 5 CRgn类

3. 2. 6 CPalette和CBitmap类

3. 3 坐标映像方式

3. 3. 1 Windows映像方式及其设置方法

3. 3. 2 逻辑坐标与设备坐标的转换

3. 4 窗口和视口

3. 4. 1 窗口和视口的概念

3. 4. 2 窗口和视口有关的操作函数

3. 4. 3 窗口逻辑坐标与视口设备坐标的转换

3. 5 其他绘图类操作函数

3. 5. 1 选用绘图设备对象

3. 5. 2 主要绘图属性设置函数

第4章 实现基本矢量图形系统的文档和视图

4. 1 组织矢量图形系统的图形元素类

4. 1. 1 图形元素基类的组织

4. 1. 2 直线类组织

4. 1. 3 连续直线或多边形区域类组织

4. 1. 4 圆类组织

4. 1. 5 圆弧类组织

4. 1. 6 标注文本类

4. 1. 7 图形参数类

4. 2 组织矢量图形系统的文档

4. 2. 1 组织面向对象的文档存储管理机制

4. 2. 2 利用MFC模板定义管理图形元素对象指针的对象

4. 2. 3 实现矢量图形系统的文档

4. 2. 4 实现文档的管理功能

4. 3 实现矢量图形系统的视图

4. 3. 1 组织实现坐标系

4. 3. 2 实现各图形元素类的绘制函数

4. 3. 3 视图类的OnDraw函数

4. 3. 4 实现视图

第5章 鼠标交互绘图

5. 1 用鼠标绘图要解决的主要问题

5. 1. 1 捕捉鼠标操作消息

5. 1. 2 捕捉所有的鼠标输入

5. 1. 3 在屏幕上拖动图形

5. 1. 4 保存图形数据到文档

5. 1. 5 将图形以实际的形态重画

5. 2 加入一个绘图菜单

5. 2. 1 增加菜单资源

5. 2. 2 增加菜单的消息处理函数

5. 3 交互绘制各种图形元素

5. 3. 1 获得图形元素的惟一识别号

5. 3. 2 绘制直线

5. 3. 3 绘制连续直线和多边形区域

5. 3. 4 绘制圆和圆形区域

5. 3. 5 绘制圆弧

5. 4 交互绘制标注文本

5. 4. 1 对话框

5. 4. 2 交互绘制标注文本的过程

5. 4. 3 创建对话框资源

5. 4. 4 实现标注文本对话框类

5. 4. 5 实现标注文本交互绘制功能

第6章 矢量图形系统的操作功能

6. 1 增加图形操作菜单

6. 1. 1 增加菜单资源

6. 1. 2 增加消息处理函数

6. 2 图形重画

6. 2. 1 全屏重画

6. 2. 2 局部重画

6. 3 图形的放大和移动

6. 3. 1 屏幕参数的计算方法

6. 3. 2 图形放大和移动的实现

6. 4 重画上屏和重画首屏

6. 4. 1 需要记录屏幕状态

6. 4. 2 实现重画上屏和重画首屏功能

6. 5 显示全图

6. 5. 1 各类图形元素边界矩形的计算

6. 5. 2 实现显示全图功能

6. 6 提高矢量图形系统重画速度的基本方法

6. 6. 1 提高图形重画的速度

6. 6. 2 提高图形重画速度的方法

6. 6. 3 加快图形元素的绘制速度

6. 7 实现滚动视图

6. 7. 1 滚动视图的实现方法

6. 7. 2 滚动区域参数设置

6. 8 定制图形滚动功能

6. 8. 1 确定滚动步长

6. 8. 2 创建滚动条

6. 8. 3 实现图形滚动功能

第7章 图形的删除和恢复

7. 1 鼠标点选图形元素

7. 1. 1 各种图形元素的选中区域

7. 1. 2 各种图形元素的点选判断函数

7. 1. 3 选中图形元素的特殊显示

7. 1. 4 实现点选图形元素功能

7. 1. 5 放弃选中的图形元素

7. 1. 6 图形元素的显示和选中顺序

7. 2 图形元素的删除

7. 2. 1 删除操作的类型

7. 2. 2 从屏幕上删除图形元素的方法

7. 2. 3 各类图形元素的删除操作

7. 2. 4 实现图形元素删除操作

7. 3 文档逆向操作

7. 3. 1 逆向操作的含义

7. 3. 2 记录文档编辑操作过程

7. 3. 3 实现文档逆向操作

7. 3. 4 实现操作过程的完全逆向化

第8章 图形的存取功能

8. 1 利用串行化存取文档

8. 1. 1 CArchive类及CArchive对象的创建

8. 1. 2 Serialize函数

8. 1. 3 CObArray类的Serialize函数

8. 2 实现矢量图形系统的存取功能

8. 2. 1 实现各个图形元素类的串行化

8. 2. 2 MFC框架程序的文档串行化机制

8. 2. 3 实现矢量图形系统的文档存取功能

8. 2. 4 SetModifiedFlag函数

第9章 矢量图形系统的子图. 颜色. 图层管理

9. 1 子图管理

9. 1. 1 组织管理子图

9. 1. 2 组织管理子图的图例

9. 1. 3 创建子图的方法

9. 2 管理各种图形参数

9. 2. 1 管理颜色

9. 2. 2 管理图层

9. 2. 3 管理线型

9. 2. 4 增加辅助绘图模式

第10章 图形的打印输出

10. 1 视图的打印机理和实现方法

10. 1. 1 视图的打印机理

10. 1. 2 打印功能的实现方法

10. 2 实现矢量图形系统的打印功能

10. 2. 1 实现图形分页打印功能

10. 2. 2 实现具体的打印功能

第11章 图形的旋转. 放缩和移动

11. 1 图形旋转

11. 1. 1 点与点的旋转操作

11. 1. 2 各类图形元素的旋转操作

11. 2 图形放缩

11. 2. 1 一个点相对于基点的放缩操作

11. 2. 2 实现各类图形元素的放缩操作

11. 3 图形移动

第三篇 开发矢量图形系统的高级功能

第12章 线型的制定和绘制

12. 1 线型的描述方式和实现方法

12. 1. 1 线型的描述方式

12. 1. 2 组成线型的图形元素

12. 1. 3 实现线型所必须具备的功能

12. 2 实现矢量图形系统的线型

12. 2. 1 线型体的数据定义

12. 2. 2 线型体的绘制

12. 2. 3 绘制使用线型的直线段

12. 2. 4 绘制使用线型的圆弧

第13章 实现多边形区域的子图填充

13. 1 填充子图的结构组织和制定

13. 2 绘制子图

13. 2. 1 各类图形元素中用于子图绘制的函数

13. 2. 2 实现子图的绘制功能

13. 3 绘制填充子图

13. 3. 1 计算子图的插入点

13. 3. 2 绘制填充子图

13. 4 剪裁填充子图

13. 4. 1 各个图形元素类中包含剪裁功能的绘制函数

13. 4. 2 实现子图的绘制功能

第14章 图形元素的放大操作

14. 1 限制图形元素放大倍数的原因

14. 1. 1 VC++基本图形绘制函数的参数取值限制

14. 1. 2 影响图形元素放大倍数的原因

14. 2 解决图形放大倍数的方法

14. 2. 1 对图形元素进行剪裁操作

14. 2. 2 剪裁操作的实现

第15章 大容量图形数据的存储

15. 1 数据存储问题的由来

15. 1. 1 目前系统组织图形元素数据的机制和方法

15. 1. 2 最可能引起内存和性能问题的图形元素

15. 2 大容量图形数据存储问题的解决方法

15. 2. 1 方案的选择

15. 2. 2 用硬盘临时文件组织存储CPline类图形元素顶点数据的方法

第16章 图形元素的平面几何关系计算

16. 1 直线与多边形区域的关系

16. 1. 1 直线与直线的关系

16. 1. 2 直线与多边形区域的相交关系

16. 1. 3 连续直线与多边形区域的相交关系

16. 2 圆弧与多边形区域的关系

16. 2. 1 圆与直线的关系

16. 2. 2 圆弧与直线的关系

16. 2. 3 圆弧与多边形区域的关系

16. 3 各类图形元素与圆形区域的关系

16. 3. 1 圆与圆的关系

16. 3. 2 圆弧与圆形区域的关系

16. 3. 3 直线与圆形区域的关系

16. 3. 4 连续直线与圆形区域的关系

16. 4 两个多边形区域的相交. 相并. 剪裁关系

16. 4. 1 两个多边形区域的交集

16. 4. 2 两个多边形区域的并集

16. 4. 3 一个多边形区域剪裁另外一个多边形区域

16. 5 环形区域的相交. 相并. 剪裁计算的思路

16. 5. 1 实心区域与环形区域的相交. 相并. 剪裁计算

16. 5. 2 两个环形区域相交. 相并. 剪裁计算的思路和方法

第17章 矢量图形系统的外部接口

17. 1 读入其他图形系统的图形

17. 1. 1 读入AutoCAD的DXF文件

17. 1. 2 读入MapGIS明码文件

17. 1. 3 读入系统自身格式的接口文件

17. 2 输出可识别的接口文件

17. 2. 1 通过DXF文件输出

17. 2. 2 输出到自身定义的接口格式

17. 2. 3 输出到数据库

第18章 矢量显示位图

18. 1 位图文件的格式

18. 2 CBitmap类及CBitmap对象的初始化方法

18. 2. 1 CBitmap类

18. 2. 2 初始化CBitmap类对象的方法

18. 3 显示位图的步骤和主要的位操作函数

18. 3. 1 显示位图的步骤

18. 3. 2 位图操作函数

18. 4 显示位图的函数实现

18. 4. 1 显示装载在资源文件中的位图

18. 4. 2 通过HBITMAP句柄装载显示位图文件

18. 4. 3 用画点法选择装入位图数据显示位图

第19章 利用剪裁板剪裁. 移动和拷贝图形

19. 1 剪裁板使用方法

19. 1. 1 打开. 关闭. 清空剪裁板

19. 1. 2 存取剪裁板

19. 1. 3 注册和检查剪裁板格式

19. 2 用剪裁板实现图形元素的剪裁. 移动和复制功能

19. 2. 1 实现各图形元素数据的字符串表示

19. 2. 2 将要剪裁的图形元素数据写入剪裁板

19. 2. 3 从剪裁板中读出图形元素

19. 2. 4 实现图形元素的剪裁. 拷贝和粘贴操作功能

第20章 实现网络化的矢量图形系统

20. 1 网络化矢量图形系统的方案选择

20. 1. 1 不允许多用户同时编辑方式

20. 1. 2 允许多用户同时编辑方式

20. 2 实现图形元素的数据库记录化

20. 2. 1 直线等图形元素和图形参数的数据库记录化

20. 2. 2 连续直线的数据库记录化

附录 代码光盘与技术支持

参考书目