论文部分内容阅读
随着计算机硬件技术、可视化技术和虚拟现实技术的发展,使设计真3D可视化软件成为了可能。目前,由于“数字地球”、“数字中国”以及“数字矿山”战略的实施,迫切的需要真3D操作的GIS和地学模拟软件。目前,三维可视化技术在国外已日趋成熟,在地学及其相关学科已经有了应用,并且已经开发出了许多比较成熟的商业软件;而国内的可视化技术研究始于20世纪90年代,从总体上讲,与国外先进水平还有相当的差距,特别是在商业软件方面还是空白。
对于黑池梁地区的MT资料,都是用数字的形式来存储的,看起来不直观,也不便于分析。本文就是设计一套小型的三维可视化程序,来管理此三维MT资料,使这些数据能够以图形的方式显示出来,并能完成一些简单的人机交互操作。因为据量不大,而且这些数据都有很好的规律性,使单机实现这些数据的三维可视化成为了可能。
本文的主体部分分为了三个部分,首先是介绍程序设计所用到的工具;第二部分介绍三维可视化建模的方法;第三部分介绍程序设计的细节及各个模块的功能。
1、本程序是用Visual C++6.0加上OpenGL来编写的。Visual C++6.0是Microsoft公司开发的一种功能强大的编程工具,它是一种面向对象的编程工具,拥有友好的图形界面,强大的编译功能,得到许多编程爱好者的青睐。用Visual C++6.0来开发应用程序有两种方法。第一种是用Microsoft提供的API(Application Programming Interface)来编程,另一种是用MFC(Microsoft Foundmion Class Library)来编程,本程序就是用MFC来编写的。OpenGL是一个到图形硬件的接口,包括大约250个函数,是一个独立于硬件的高效接口,可在许多硬件平台上实现。用OpenGL来实现三维体的移动、旋转、缩放等功能非常的方便。
2、三维空间数据模型是研究三维空间的几何对象的数据组织、操作、以及规则约束条件等内容的集合,确定一个几何对象的三维数据模型是由多方面的因素确定的。确定采用何种数据模型描述三维空间内的几何对象以及与该几何对象相关的非空间数据,是一个三维系统开发和设计的基础,直接决定了系统功能进一步的开发和模型的三维表达能力。本文详细介绍了目前比较常用的三维建模方法,像实体几何模型(CSG)、边界表示模型(B-rep)、四面体网格模型(TEN)等,并比较了它们各自的应用范围;另外介绍了三维可视化建模的流程。因为作者所获取的黑池梁地区三维MT资料是很有规律的数据,结构比较简单,所以本程序就采用了比较简单的规则格网模型(Grid)来描述三维图形的表面,用规则块体模型(Regular Block)来描述三维图形的内部。
3、本程序的主框架采用单文档拆分窗口,将框架分成为三个视图窗口。第一个窗口用来管理地球物理数据的类型,此处只用到了三维MT数据;第二个窗口用来实现图形的三维显示,是程序的主窗口,图形的旋转、缩放、平移以及改变色阶等操作都是在这个窗口中来完成;第三个窗口用来显示切割剖面,本程序可以沿三个不同的方向对三维图形进行切割,分别是沿X轴方向、沿Y轴方向和沿z轴方向,根据切割位置,来取出截面,同时显示截面信息。其中程序又分为数据预处理模块、数据三维显示模块和三维图形切割模块。在数据预处理模块中,采用了距离平方成反比的插值算法,将空间数据网格化,然后又采用极差化法,对数据进行标准化,将数据转化到屏幕能够显示的范围内;在数据三维显示模块,采用规则格网模型,画出三维图形的六个边界面,使之成为一个空间上的三维图形,然后完成三维图形的旋转、缩放和平移等功能;在三维图形切割模块中,首先选择切割的方向,然后输入切割的位置,根据所输入的位置,找出此切割面位于三维网格化数据哪两层之间,然后按照距离插值出切割剖面,并将此剖面显示出来。