eeleo_Lion
论坛版主
论坛版主
  • 注册日期2003-11-29
  • 发帖数1798
  • QQ
  • 铜币551枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2490回复:7

矢量图形系统开发与编程

楼主#
更多 发布于:2004-10-22 17:22
本书是《书名Visual C++ 开发 GIS 系统--开发实例剖析(含光盘) 》一书的升级版本。作为矢量图形系统开发技术和VC++编程技术的集合体,本书以矢量图形系统的开发为主线贯穿全书,全面介绍和分析了MFC程序设计技术和矢量图形系统各功能的开发。包括各种MFC辅助工具的使用方法、与图形有关的MFC类、文档和视图的实现、鼠标交互绘图等。
回到顶部
序言/前言
  
回到顶部
图书目录
第 一 篇 VC++程序设计技术要点
第1章 MFC应用程序设计开发工具(3)
1.1 使用MFC APPWIZARD(4)
1.1.1 MFC AppWizard的启动(4)
1.1.2 利用MFC AppWizard产生MFC应用程序的步骤(6)
1.2 使用CLASSVIEW(10)
1.2.1 启动ClassView(10)
1.2.2 编辑定位(11)
1.2.3 增加类(11)
1.2.4 增加类的成员(14)
1.3 使用RESOURCEVIEW(16)
1.3.1 ResourceView的调用(16)
1.3.2 ResourceView工作分析(17)
1.4 使用FILEVIEW(20)
1.4.1 打开一个程序项目(20)
1.4.2 FileView相关的操作功能(21)
1.5 使用CLASSWIZARD(22)
1.5.1 Windows消息(23)
1.5.2 消息处理函数(24)
1.5.3 ClassWizard的作用和启动(26)
1.5.4 ClassWizard管理消息处理函数(27)
1.5.5 ClassWizard管理重载虚函数(31)
1.5.6 ClassWizard管理映射变量(33)
1.5.7 管理Automation和ActiveX事件(37)
1.5.8 重新构造开发项目的ClassWizard工作信息(38)
1.6 使用DATAVIEW(38)
1.7 管理多个程序项目(39)
1.8 使用各设计工具进行编程的建议(40)
第2章 MFC应用程序框架(42)
2.1 MFC应用程序基本框架类和文件组成(42)
2.1.1 基本程序框架类(42)
2.1.2 应用程序的主要源文件组成(43)
2.2 MFC应用程序中各个框架类的作用(44)
2.3 MFC应用程序的执行步骤分析(46)
2.4 MFC应用程序设计结构体系剖析(48)
2.4.1 标准菜单的执行分析(49)
2.4.2 修改标准菜单的执行功能(50)
2.4.3 MFC应用程序多态性的实现(51)
2.4.4 MFC应用程序中各框架类对象的相互调用关系(53)
第 二 篇 实现基本矢量图形系统
第3章 与绘图有关的MFC类及操作(57)
3.1 绘图类(57)
3.1.1 绘图类简介(57)
3.1.2 几个绘图类的主要差别(58)
3.1.3 绘图类的使用方法(59)
3.2 绘图设备类(60)
3.2.1 CGdiObject类(60)
3.2.2 Cpen类(60)
3.2.3 Cbrush类(63)
3.2.4 Cfont类(65)
3.2.5 CRgn类(68)
3.2.6 Cpalette和Cbitmap类(74)
3.3 坐标映像方式(74)
3.3.1 Windows映像方式及其设置方法(74)
3.3.2 逻辑坐标与设备坐标的转换(76)
3.4 窗口和视口(76)
3.4.1 窗口和视口的概念(76)
3.4.2 窗口和视口有关的操作函数(77)
3.4.3 窗口逻辑坐标与视口设备坐标的转换(78)
3.5 其他绘图类操作函数(81)
3.5.1 选用绘图设备对象(81)
3.5.2 主要绘图属性设置函数(82)
第4章 实现基本矢量图形系统的文档和视图(85)
4.1 组织矢量图形系统的图形元素类(85)
4.1.1 图形元素基类的组织(85)
4.1.2 直线类组织(86)
4.1.3 连续直线或多边形区域类组织(87)
4.1.4 圆类组织(88)
4.1.5 圆弧类组织(89)
4.1.6 标注文本类(90)
4.1.7 图形参数类(91)
4.2 组织矢量图形系统的文档(93)
4.2.1 组织面向对象的文档存储管理机制(93)
4.2.2 利用MFC模板定义管理图形元素对象指针的对象(93)
4.2.3 实现矢量图形系统的文档(94)
4.2.4 实现文档的管理功能(95)
4.3 实现矢量图形系统的视图(101)
4.3.1 组织实现坐标系(101)
4.3.2 实现各图形元素类的绘制函数(107)
4.3.3 视图类的OnDraw函数(116)
4.3.4 实现视图(118)
第5章 鼠标交互绘图(120)
5.1 用鼠标绘图要解决的主要问题(120)
5.1.1 捕捉鼠标操作消息(120)
5.1.2 捕捉所有的鼠标输入(122)
5.1.3 在屏幕上拖动图形(122)
5.1.4 保存图形数据到文档(122)
5.1.5 将图形以实际的形态重画(123)
5.2 加入一个绘图菜单(123)
5.2.1 增加菜单资源(123)
5.2.2 增加菜单的消息处理函数(124)
5.3 交互绘制各种图形元素(126)
5.3.1 获得图形元素的惟一识别号(126)
5.3.2 绘制直线(128)
5.3.3 绘制连续直线和多边形区域(132)
5.3.4 绘制圆和圆形区域(135)
5.3.5 绘制圆弧(138)
5.4 交互绘制标注文本(146)
5.4.1 对话框(146)
5.4.2 交互绘制标注文本的过程(147)
5.4.3 创建对话框资源(147)
5.4.4 实现标注文本对话框类(148)
5.4.5 实现标注文本交互绘制功能(152)
第6章 矢量图形系统的操作功能(156)
6.1 增加图形操作菜单(156)
6.1.1 增加菜单资源(156)
6.1.2 增加消息处理函数(157)
6.2 图形重画(158)
6.2.1 全屏重画(158)
6.2.2 局部重画(159)
6.3 图形的放大和移动(160)
6.3.1 屏幕参数的计算方法(160)
6.3.2 图形放大和移动的实现(161)
6.4 重画上屏和重画首屏(165)
6.4.1 需要记录屏幕状态(165)
6.4.2 实现重画上屏和重画首屏功能(168)
6.5 显示全图(169)
6.5.1 各类图形元素边界矩形的计算(170)
6.5.2 实现显示全图功能(174)
6.6 提高矢量图形系统重画速度的基本方法(177)
6.6.1 提高图形重画的速度(177)
6.6.2 提高图形重画速度的方法(177)
6.6.3 加快图形元素的绘制速度(179)
6.7 实现滚动视图(180)
6.7.1 滚动视图的实现方法(180)
6.7.2 滚动区域参数设置(180)
6.8 定制图形滚动功能(182)
6.8.1 确定滚动步长(182)
6.8.2 创建滚动条(182)
6.8.3 实现图形滚动功能(183)
第7章 图形的删除和恢复(189)
7.1 鼠标点选图形元素(189)
7.1.1 各种图形元素的选中区域(189)
7.1.2 各种图形元素的点选判断函数(194)
7.1.3 选中图形元素的特殊显示(198)
7.1.4 实现点选图形元素功能(199)
7.1.5 放弃选中的图形元素(205)
7.1.6 图形元素的显示和选中顺序(205)
7.2 图形元素的删除(206)
7.2.1 删除操作的类型(206)
7.2.2 从屏幕上删除图形元素的方法(207)
7.2.3 各类图形元素的删除操作(208)
7.2.4 实现图形元素删除操作(212)
7.3 文档逆向操作(213)
7.3.1 逆向操作的含义(214)
7.3.2 记录文档编辑操作过程(214)
7.3.3 实现文档逆向操作(221)
7.3.4 实现操作过程的完全逆向化(223)
第8章 图形的存取功能(225)
8.1 利用串行化存取文档(225)
8.1.1 Carchive类及Carchive对象的创建(225)
8.1.2 Serialize函数(227)
8.1.3 CObArray类的Serialize函数(229)
8.2 实现矢量图形系统的存取功能(230)
8.2.1 实现各个图形元素类的串行化(230)
8.2.2 MFC框架程序的文档串行化机制(235)
8.2.3 实现矢量图形系统的文档存取功能(236)
8.2.4 SetModifiedFlag函数(238)
第9章 矢量图形系统的子图、颜色、图层管理(241)
9.1 子图管理(241)
9.1.1 组织管理子图(241)
9.1.2 组织管理子图的图例(243)
9.1.3 创建子图的方法(244)
9.2 管理各种图形参数(245)
9.2.1 管理颜色(245)
9.2.2 管理图层(247)
9.2.3 管理线型(249)
9.2.4 增加辅助绘图模式(249)
第10章 图形的打印输出(251)
10.1 视图的打印机理和实现方法(251)
10.1.1 视图的打印机理(251)
10.1.2 打印功能的实现方法(252)
10.2 实现矢量图形系统的打印功能(255)
10.2.1 实现图形分页打印功能(255)
10.2.2 实现具体的打印功能(258)
第11章 图形的旋转、放缩和移动(259)
11.1 图形旋转(259)
11.1.1 点与点的旋转操作(259)
11.1.2 各类图形元素的旋转操作(260)
11.2 图形放缩(262)
11.2.1 一个点相对于基点的放缩操作(263)
11.2.2 实现各类图形元素的放缩操作(263)
11.3 图形移动(265)
第 三 篇 开发矢量图形系统的高级功能
第12章 线型的制定和绘制(269)
12.1 线型的描述方式和实现方法(269)
12.1.1 线型的描述方式(269)
12.1.2 组成线型的图形元素(269)
12.1.3 实现线型所必须具备的功能(271)
12.2 实现矢量图形系统的线型(273)
12.2.1 线型体的数据定义(273)
12.2.2 线型体的绘制(275)
12.2.3 绘制使用线型的直线段(284)
12.2.4 绘制使用线型的圆弧(288)
第13章 实现多边形区域的子图填充(291)
13.1 填充子图的结构组织和制定(291)
13.2 绘制子图(292)
13.2.1 各类图形元素中用于子图绘制的函数(292)
13.2.2 实现子图的绘制功能(294)
13.3 绘制填充子图(295)
13.3.1 计算子图的插入点(295)
13.3.2 绘制填充子图(299)
13.4 剪裁填充子图(301)
13.4.1 各个图形元素类中包含剪裁功能的绘制函数(301)
13.4.2 实现子图的绘制功能(305)
第14章 图形元素的放大操作(307)
14.1 限制图形元素放大倍数的原因(307)
14.1.1 VC++ 基本图形绘制函数的参数取值限制(307)
14.1.2 影响图形元素放大倍数的原因(307)
14.2 解决图形放大倍数的方法(308)
14.2.1 对图形元素进行剪裁操作(308)
14.2.2 剪裁操作的实现(309)
第15章 大容量图形数据的存储(323)
15.1 数据存储问题的由来(323)
15.1.1 目前系统组织图形元素数据的机制和方法(323)
15.1.2 最可能引起内存和性能问题的图形元素(323)
15.2 大容量图形数据存储问题的解决方法(324)
15.2.1 方案的选择(324)
15.2.2 用硬盘临时文件组织存储Cpline类图形元素顶点数据的方法(325)
第16章 图形元素的平面几何关系计算(332)
16.1 直线与多边形区域的关系(332)
16.1.1 直线与直线的关系(332)
16.1.2 直线与多边形区域的相交关系(337)
16.1.3 连续直线与多边形区域的相交关系(340)
16.2 圆弧与多边形区域的关系(343)
16.2.1 圆与直线的关系(343)
16.2.2 圆弧与直线的关系(347)
16.2.3 圆弧与多边形区域的关系(350)
16.3 各类图形元素与圆形区域的关系(353)
16.3.1 圆与圆的关系(353)
16.3.2 圆弧与圆形区域的关系(355)
16.3.3 直线与圆形区域的关系(358)
16.3.4 连续直线与圆形区域的关系(361)
16.4 两个多边形区域的相交、相并、剪裁关系(363)
16.4.1 两个多边形区域的交集(363)
16.4.2 两个多边形区域的并集(373)
16.4.3 一个多边形区域剪裁另外一个多边形区域(382)
16.5 环形区域的相交、相并、剪裁计算的思路(389)
16.5.1 实心区域与环形区域的相交、相并、剪裁计算(389)
16.5.2 两个环形区域相交、相并、剪裁计算的思路和方法(393)
第17章 矢量图形系统的外部接口(395)
17.1 读入其他图形系统的图形(395)
17.1.1 读入AutoCAD的DXF文件(395)
17.1.2 读入MapGIS明码文件(410)
17.1.3 读入系统自身格式的接口文件(411)
17.2 输出可识别的接口文件(411)
17.2.1 通过DXF文件输出(412)
17.2.2 输出到自身定义的接口格式(418)
17.2.3 输出到数据库(419)
第18章 矢量显示位图(420)
18.1 位图文件的格式(420)
18.2 CBITMAP类及CBITMAP对象的初始化方法(423)
18.2.1 Cbitmap类(423)
18.2.2 初始化Cbitmap类对象的方法(424)
18.3 显示位图的步骤和主要的位操作函数(426)
18.3.1 显示位图的步骤(427)
18.3.2 位图操作函数(428)
18.4 显示位图的函数实现(430)
18.4.1 显示装载在资源文件中的位图(430)
18.4.2 通过HBITMAP句柄装载显示位图文件(431)
18.4.3 用画点法选择装入位图数据显示位图(438)
第19章 利用剪裁板剪裁、移动和拷贝图形(446)
19.1 剪裁板使用方法(446)
19.1.1 打开、关闭、清空剪裁板(446)
19.1.2 存取剪裁板(447)
19.1.3 注册和检查剪裁板格式(449)
19.2 用剪裁板实现图形元素的剪裁、移动和复制功能(452)
19.2.1 实现各图形元素数据的字符串表示(452)
19.2.2 将要剪裁的图形元素数据写入剪裁板(458)
19.2.3 从剪裁板中读出图形元素(462)
19.2.4 实现图形元素的剪裁、拷贝和粘贴操作功能(466)
第20章 实现网络化的矢量图形系统(470)
20.1 网络化矢量图形系统的方案选择(470)
20.1.1 不允许多用户同时编辑方式(470)
20.1.2 允许多用户同时编辑方式(470)
20.2 实现图形元素的数据库记录化(472)
20.2.1 直线等图形元素和图形参数的数据库记录化(472)
20.2.2 连续直线的数据库记录化(479)
附录 代码光盘与技术支持(484)
参考书目(485)
喜欢0 评分0
人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。
webjj
路人甲
路人甲
  • 注册日期2004-10-20
  • 发帖数70
  • QQ
  • 铜币153枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2004-10-23 08:33
还不错,不过使用的是GDI编程,如果能用Opengl就更好了!
举报 回复(0) 喜欢(0)     评分
zzxcdh
路人甲
路人甲
  • 注册日期2004-10-31
  • 发帖数70
  • QQ
  • 铜币116枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-10-31 07:29
有没有电子版啊?
电子版方便啊
举报 回复(0) 喜欢(0)     评分
星期天
论坛版主
论坛版主
  • 注册日期2004-03-16
  • 发帖数1327
  • QQ16940978
  • 铜币655枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2005-05-25 01:38
<img src="images/post/smile/dvbbs/em04.gif" /><img src="images/post/smile/dvbbs/em05.gif" /><img src="images/post/smile/dvbbs/em04.gif" /><img src="images/post/smile/dvbbs/em03.gif" />
天天很自由!我想我能……
举报 回复(0) 喜欢(0)     评分
星期天
论坛版主
论坛版主
  • 注册日期2004-03-16
  • 发帖数1327
  • QQ16940978
  • 铜币655枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2005-05-25 01:38
<img src="images/post/smile/dvbbs/em04.gif" /><img src="images/post/smile/dvbbs/em05.gif" /><img src="images/post/smile/dvbbs/em04.gif" /><img src="images/post/smile/dvbbs/em03.gif" />
天天很自由!我想我能……
举报 回复(0) 喜欢(0)     评分
nl1001
路人甲
路人甲
  • 注册日期2005-08-21
  • 发帖数20
  • QQ
  • 铜币140枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2005-08-21 04:15
好书。<img src="images/post/smile/dvbbs/em05.gif" /><img src="images/post/smile/dvbbs/em05.gif" />
举报 回复(0) 喜欢(0)     评分
sinclairmu76wjb
路人甲
路人甲
  • 注册日期2006-04-01
  • 发帖数23
  • QQ
  • 铜币192枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2006-04-03 07:38
<P>版主</P>
<P>有没有电子版的啊</P>
<P>关注你</P>
举报 回复(0) 喜欢(0)     评分
琚国庆
路人甲
路人甲
  • 注册日期2007-05-09
  • 发帖数3
  • QQ
  • 铜币146枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于:2007-11-19 17:41
hao
wdddededdeded
举报 回复(0) 喜欢(0)     评分
游客

返回顶部