第1篇 系统开发基础 3
第1章 三维图形世界 3
1.1 计算机三维图形技术的发展 4
1.2 科学计算可视化技术 4
1.3 三维可视化工程设计 6
1.4 本书的适用对象 7
1.5 全书概览 7
第2章 OpenGL概述 9
2.1 OpenGL概念建立 10
2.1.1 OpenGL基本理解 10
2.1.2 OpenGL的特点及功能 10
2.1.3 OpenGL工作流程 12
2.1.4 OpenGL绘图流程 13
2.2 OpenGL的版本和扩展 14
2.2.1 OpenGL版本 14
2.2.2 OpenGL扩展 16
2.3 OpenGL编程基础 20
2.3.1 OpenGL数据类型 20
2.3.2 OpenGL库函数 21
2.3.3 OpenGL句法 22
2.3.4 OpenGL状态变量 24
2.3.5 OpenGL变换 25
2.4 OpenGL程序框架建立 33
2.4.1 OpenGL像素格式 34
2.4.2 着色描述表 36
2.4.3 设置像素格式 37
2.4.4 创建着色描述表 38
2.4.5 创建Visual C++程序 41
2.5 本章小结 48
第3章 Oracle与OCI技术及编程基础 49
3.1 Oracle数据库简介 50
3.2 Oracle数据库的安装 51
3.3 Oracle数据类型 55
3.4 Oracle编程接口 57
3.4.1 ADO开发接口 58
3.4.2 Pro* C/C++ 59
3.4.3 Oracle OCI 60
3.4.4 ADO、Pro*C/C++、Oracle OCI的对比分析 61
3.5 OCI编程 62
3.5.1 OCI编程基础 62
3.5.2 OCI数据结构 62
3.5.3 OCI程序的基本结构 63
3.5.4 OCI执行SQL的步骤 64
3.6 VC++6.0下OCI编程实例 66
3.6.1 数据的准备 66
3.6.2 建立工程 67
3.6.3 加入OCI的头文件与库文件 68
3.6.4 在VC中应用OCI编程 69
3.7 本章小结 75
第2篇 大规模地形三维可视化系统设计与实现第4章 地形三维可视化系统框架与OCI类模块设计 79
4.1 系统程序框架建立 80
4.1.1 建立Visaul C++工程 80
4.1.2 添加OpenGL框架代码和文件 81
4.1.3 程序实现 82
4.2 OCI公共类的实现 92
4.2.1 新类的添加 92
4.2.2 类变量的添加 92
4.2.3 类函数的实现 93
4.3 本章涉及到的OpenGL函数与知识点 121
4.4 本章小结 121
第5章 地形三维可视化系统的地形渲染实现 123
5.1 地形三维可视化概述 124
5.2 地形三维可视化的主要算法 124
5.2.1 主要算法概述 124
5.2.2 四叉树结构的多分辨率地形模型 125
5.3 地形三维可视化系统的实现 126
5.3.1 海量地形与影像纹理数据的获取方法 126
5.3.2 海量地形自分块程序实现 127
5.3.3 大影像的自分块及程序实现 140
5.3.4 状态栏指示器的实现 149
5.3.5 地形与影像子块的调度 152
5.3.6 三维地形纹理映射 162
5.3.7 地形节点评价系统 172
5.3.8 系统优化算法 177
5.3.9 三维地形的渲染 179
5.3.10 真三维立体的实现 211
5.4 本章涉及到的OpenGL函数与知识点 217
5.5 本章小结 219
第6章 地形三维可视化系统项目管理与辅助功能 221
6.1 项目管理 222
6.1.1 新建项目 222
6.1.2 打开项目 231
6.2 背景天空的实现 243
6.3 绘图模式的控制 245
6.4 空间查询 248
6.4.1 查询算法实现 248
6.4.2 查询标识设置 254
6.4.3 查询三维坐标 259
6.4.4 查询空间距离 263
6.5 照相机模块的设计与实现 267
6.5.1 键盘控制的实现 267
6.5.2 鼠标控制的实现 271
6.6 本章涉及到的OpenGL函数与知识点 274
6.7 本章小结 276
第3篇 线路三维可视化系统设计与实现第7章 三维交互技术与三维线路数据结构 279
7.1 三维交互技术 280
7.1.1 交互环境概述 280
7.1.2 正射投影模式实现 281
7.1.3 正射投影模式下场景控制 288
7.1.4 透视投影模式实现 294
7.2 三维地面坐标的获取 295
7.2.1 正射投影模式下的获取 295
7.2.2 透视投影模式下的获取 299
7.3 三维线路数据结构设计 299
7.3.1 边坡数据结构 300
7.3.2 桥梁数据结构 301
7.3.3 隧道数据结构 302
7.3.4 水沟数据结构 303
7.3.5 线路数据结构 304
7.4 本章涉及到的OpenGL函数与知识点 307
7.5 本章小结 307
第8章 三维线路设计实现 309
8.1 线路方案主要参数设计 310
8.2 设计交点信息输入实现 331
8.3 线路中心线定位 338
8.4 设计方案保存与平面方案生成 349
8.4.1 设计方案保存 350
8.4.2 平面方案的自动生成 356
8.5 纵断面设计模块的实现 357
8.6 边坡模型的生成算法 361
8.7 线路路基三维建模 364
8.8 隧道三维建模与绘制 380
8.8.1 隧道三维建模 380
8.8.2 隧道参数设置实现 388
8.8.3 隧道绘制实现 391
8.9 桥梁三维建模与绘制 397
8.9.1 桥梁三维建模 397
8.9.2 桥梁参数设置实现 405
8.9.3 桥梁绘制实现 409
8.10 线路三维模型绘制 416
8.11 本章涉及到的OpenGL函数与知识点 431
8.12 本章小结 432
第9章 道路整体三维建模 433
9.1 道路整体三维模型的实现 434
9.1.1 线路封闭区域确定与分割算法 434
9.1.2 地形块综合数据点计算 451
9.1.3 分块TIN模型的构网实现 462
9.1.4 封闭区域内数据点的剔除 465
9.1.5 整体构网的实现 468
9.2 纹理管理 471
9.2.1 边坡纹理 471
9.2.2 路肩纹理 476
9.2.3 桥梁护坡面纹理 479
9.2.4 隧道内墙纹理 483
9.2.5 隧道洞门纹理 486
9.3 本章涉及到的OpenGL函数与知识点 490
9.4 本章小结 490
第10章 三维漫游的实现 491
10.1 飞行路径建立 492
10.1.1 飞行路径简介 492
10.1.2 飞行路径设置方法 492
10.1.3 飞行路径插值算法 498
10.1.4 飞行路径的保存 501
10.1.5 打开飞行路径 503
10.1.6 显示/关闭飞行路径 506
10.2 沿飞行路径漫游实现 507
10.2.1 沿固定高度漫游实现 508
10.2.2 沿相对高度漫游实现 512
10.3 沿线路方案线三维漫游实现 515
10.3.1 飞行路径的获取 515
10.3.2 漫游的实现 516
10.4 三维漫游的控制 518
10.4.1 开始/暂停漫游 518
10.4.2 停止漫游 520
10.4.3 单步前进 521
10.5 三维漫游的调整 522
10.5.1 飞行视野调整 522
10.5.2 飞行高度调整 523
10.5.3 飞行倾角调整 524
10.5.4 飞行速度调整 525
10.5.5 三维漫游调整的热键实现 526
10.6 三维漫游的相关计算 529
10.6.1 三维漫游帧频的计算 529
10.6.2 三维漫游速度的计算 530
10.6.3 三维漫游里程的计算 531
10.7 本章涉及到的OpenGL函数与知识点 534
10.8 本章小结 534
第4篇 线路三维可视化系统辅助功能实现第11章 显示模式控制及实现 537
11.1 显示模式控制及实现 538
11.1.1 双目立体方式 538
11.1.2 正射投影方式 539
11.1.3 透视投影方式 540
11.2 时钟指北针的实现 541
11.3 缩略图的实现 553
11.4 本章涉及到的OpenGL函数与知识点 556
11.5 本章小结 557
第12章 3D模型载入与应用 559
12.1 常用3D模型概述 560
12.1.1 3DS模型 560
12.1.2 OBJ模型 561
12.1.3 ASE模型 561
12.1.4 MD2/MD3模型 562
12.1.5 MS3D模型 562
12.2 3DS模型的载入 564
12.2.1 3DS文件基本构成 564
12.2.2 第三方软件转换法 564
12.2.3 程序直接载入 580
12.2.4 程序直接载入的实现 580
12.3 3DS模型在系统中应用实例 597
12.4 本章涉及到的OpenGL函数与知识点 601
12.5 本章小结 602
第13章 系统输出接口与动画录制实现 603
13.1 输出线路三维模型到AutoCAD 604
13.1.1 输出格式DXF简介 604
13.1.2 DXF输出模块的设计 605
13.1.3 输出的实现 613
13.2 AVI动画录制 623
13.2.1 动画录制类实现 623
13.2.2 动画录制参数设置 626
13.2.3 开始录制动画 631
13.2.4 暂停录制动画 636
13.2.5 结束录制动画 636
13.3 屏幕图形的打印 638
13.3.1 图形打印类的实现 639
13.3.2 打印预览的实现 645
13.3.3 打印设置的实现 647
13.3.4 打印的实现 648
13.4 录制图像 649
13.4.1 图像采集频率 649
13.4.2 图像录像 652
13.4.3 停止录像图像 656
13.5 保存屏幕到位图 657
13.6 本章小结 662
第14章 系统简介与运行实例 663
14.1 系统介绍 664
14.1.1 系统主要特点 664
14.1.2 系统运行环境 664
14.2 系统功能模块简介 665
14.3 系统运行实例 673
14.4 本章小结 677
附录 679
附录A 相关数学程序模块 680
附录B OpenGL核心函数库和应用函数库 686
附录C OpenGL常用编程技巧 691
附录D OpenGL资源网站 693
参考文献 695