论文部分内容阅读
地图是人们认识和了解环境状况的重要途径,是任何GIS系统的基本组成成份。将地图从二维发展为三维是目前很多测绘工作人员和GIS系统研发人员的重点工作之一,地形的三维可视化正是利用了计算机的计算能力和良好的图形显示能力来实现三维地图的方式。对于大规模地域来说,由于数据量的庞大和显示速度的要求,其实时可视化又是地形可视化中的难点之一。 本文以笔者开发的一个大规模地形实时可视化系统为例,首先阐述了用于表示地域模型的网格的相关概念和理论,进而对各种用于满足实时动画需求的细节层次模型进行了比较,选择了适合于实现地形实时可视化的连续细节层次模型。在算法上参考比较了国内外诸多算法,最终采用了ROAM算法。由于该算法涉及到一些抽象数据结构,并且仅提供了大体思路,因此笔者通过自主实现的一个具有类层次结构的抽象数据结构软件包,并且通过对三角形网格的细致的图形学分析,实现了ROAM算法未给出的许多细节算法,并且获得了良好的运行效率。在高程点为1025×1025的情况下,在Pentium1.7G/256M的个人电脑上显示速度达到20帧/秒。 实时可视化系统的一个重要特点就是用户可以交互控制视图的显示。笔者在所实现的系统中设计并实现了一个可以模拟摄像机功能的视图控制器。该视图控制器不仅可以模拟人们对摄像机的各种控制,还可以作为平行投影器来使用,因此它还可以用于各种科学可视化系统来显示诸如轴测投影等各种长度比例在各方向一致的平行投影。该视图控制器是以面向对象的方式进行设计的,因此可以很方便的用于其它可视化系统。 本文所实现的可视化系统还有另外一个特点就是,在可视化基础上加入了交互查询高程、场景中两点间水平距离和任意折线长度、任意多边形区域的周长和面积等空间信息的功能。这些功能的加入使该可视化系统更具有GIS的特征。 统一建模语言(Unified Modeling Language,简称UML)起源于上个世纪90年代中期,目前已成为事实上的国际标准建模语言。由于UML的规范性与严谨性,软件工程的系统分析过程与程序设计过程用UML来表示已成为一种趋势,本文所阐述的地形可视化系统的开发过程便是用UML来进行分析和设计的,并在设计的基础上,用VC++6.0和OpenGL进行代码的编写,从而实现了可以运行在Windows98以上的Windows操作系统当中的大规模地形可视化系统。