![矢量图形系统开发与编程](https://cover.qianqiantushu.cc/3/s64b8952.jpg)
![矢量图形系统开发与编程](https://cover.qianqiantushu.cc/3/s64b8952.jpg)
矢量图形系统开发与编程PDF电子书下载
- 电子书积分:15 积分如何计算积分?
- 作 者:陈建春编著
- 出 版 社:北京:电子工业出版社
- 出版年份:2004
- ISBN:7505392522
- 页数:485 页
第一篇 VC++程序设计技术要点 3
第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
第二篇 实现基本矢量图形系统 57
第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.3 坐标映像方式 74
3.3.1 Windows映像方式及其设置方法 74
3.2.6 CPalette和CBitmap类 74
3.3.2 逻辑坐标与设备坐标的转换 76
3.4 窗口和视口 76
3.4.1 窗口和视口的概念 76
3.4.2 窗口和视口有关的操作函数 77
3.4.3 窗口逻辑坐标与视口设备坐标的转换 78
3.5.1 选用绘图设备对象 81
3.5 其他绘图类操作函数 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.3 在屏幕上拖动图形 122
5.1.4 保存图形数据到文档 122
5.1.2 捕捉所有的鼠标输入 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.1.1 增加菜单资源 156
第6章 矢量图形系统的操作功能 156
6.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.1 提高图形重画的速度 177
6.6.2 提高图形重画速度的方法 177
6.6 提高矢量图形系统重画速度的基本方法 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.1 删除操作的类型 206
7.2 图形元素的删除 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.1 图形旋转 259
11.1.1 点与点的旋转操作 259
第11章 图形的旋转、放缩和移动 259
11.1.2 各类图形元素的旋转操作 260
11.2 图形放缩 262
11.2.1 一个点相对于基点的放缩操作 263
11.2.2 实现各类图形元素的放缩操作 263
11.3 图形移动 265
12.1.1 线型的描述方式 269
12.1.2 组成线型的图形元素 269
第三篇 开发矢量图形系统的高级功能 269
12.1 线型的描述方式和实现方法 269
第12章 线型的制定和绘制 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.1 对图形元素进行剪裁操作 308
14.2 解决图形放大倍数的方法 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.2 输出可识别的接口文件 411
17.1.3 读入系统自身格式的接口文件 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.1.1 打开、关闭、清空剪裁板 446
19.1 剪裁板使用方法 446
第19章 利用剪裁板剪裁、移动和拷贝图形 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.1.1 不允许多用户同时编辑方式 470
20.1.2 允许多用户同时编辑方式 470
第20章 实现网络化的矢量图形系统 470
20.1 网络化矢量图形系统的方案选择 470
20.2 实现图形元素的数据库记录化 472
20.2.1 直线等图形元素和图形参数的数据库记录化 472
20.2.2 连续直线的数据库记录化 479
附录 代码光盘与技术支持 484
参考书目 485
- 《糊涂国王摸月亮 立体图形的组合》(韩)高滋贤文 2016
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《高含硫气藏开发腐蚀控制技术与实践》唐永帆,张强 2018
- 《主题公园开发与管理》梁增贤编著 2019
- 《全国职业院校工业机器人技术专业规划教材 工业机器人现场编程》(中国)项万明 2019
- 《中南高校档案文化资源开发综合研究》涂上飙 2019
- 《普通高等职业教育计算机系列规划教材 Android Studio移动应用开发基础》(中国)吴绍根 2019
- 《编程超有趣 奇妙Python轻松学 第1辑》HelloCode人工智能国际研究组 2018
- 《Cocos Creator微信小游戏开发实战》王绍明编著 2020
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《电子测量与仪器》人力资源和社会保障部教材办公室组织编写 2009
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《电子应用技术项目教程 第3版》王彰云 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017