摘 要 OpenGL是一种交互式计算机图形系统,具有绘制三维图形的功能,能高效地编写出可操纵图形硬件的程序,支持三维可视化的实现。本文以OpenGL为基础,对可视化技术进行研究,重点讨论了内插算法,结合OpenGL中视点的定义,通过OpenGL的函数来实现。
关键词 OpenGL 可视化 内插算法
1 引言
为了便于对算法实现进行测试和效果分析,我们依据图1进行离散点采样。在图1中,地形面积为 ,其等高线分布如图所示,A点和B点为两座山的顶峰,其中A点高程值为3.6,B点高程值为2.3。我们将采样得到的离散点按照一定的规则存放在*.dem的文件中,通过读取文件中的数据来获取离散点的高程值。我们通过采样10或20个点生成 的DEM格网模型。 图1 测试地形等高线图2 内插算法的可视化的实现
2.1 读取文件中离散点数据
离散点数据包括平面位置和高程两种信息,可以直接在野外通过全站仪或者GPS、激光测距仪等进行测量,也可以间接地从航空影像或者遥感图象以及既有地形图上得到。具体采用何种数据源和相应的测量技术,一方面取决于这些源数据的可获得性,另一方面也取决于DEM的分辨率、精度要求、数据量大小和技术要求等。 对于离散点的数据,往往是很大的,我们只有按照一定数据结构存储在*.dem文件中,才能便于管理和修改。在程序中通过读取文件,可以得到任意一个文件中的地形信息。为了测试的需要,依据图1中的等高线我们可以采集到一些特征点的三维信息。例如,我们采集10个点的信息,将其存入文件中,其结构如下所示:10 0.0 0.0 0.0 10.0 10.0 10.0 10.0 0.0 0.0 3.6 3.0 7.1 3.6 7.1 3.0 2.3 5.5 5.5 1.4 5.7 8.0 1.0 8.0 8.0 0.5 9.0 2.0 1.3 6.0 1.2 1.0 5.0 4.0 1.0 1.0 7.2 2.0 2.0 2.0 0.3 在实例中每个数据按照5个字符来存储。 论文检测天使-免费论文检测软件http://www.jiancetianshi.com第一个数据为采样离散点的总数,第二到第九个数据分别为所选地形左下、左上、右上、右下点的平面X和Y的坐标,第十和第十一个数据为地形的最小高程值和最大高程值,余下的数据每三个为采样离散点的三维坐标X、Y和Z,共有十个。 在LoadFileData类中,需要先定义如下:public int DataNum; //离散点的总数public double[,] DataPoint=new double [50,3]; //离散数据点的三维坐标int readDemPosition; // 读取位置string DemFileContent; //DEM文件内容public struct Point{public double x; public double y;}public struct DEMStruct{public Point LeftBottom;public Point LeftTop; public Point RightTop; public Point RightBottom; public double MinElevation; public double MaxElevation;} public DEMStruct DemDataStruct;//存储*.dem文件中前十一个数据 同时在主程序中,还需要调用如下两个读取int型和double型的函数:private int readInt() { string tmps ; tmps = DemFileContent.Substring(readDemPosition,5); readDemPosition += 5; return ( Convert.ToInt32(tmps)); } private double readDouble() { string tmps; tmps = DemFileContent.Substring(readDemPosition,5); readDemPosition += 5; return (Convert.ToDouble(tmps)); } 通过读取文件中的数据,我们可以很容易的得到地图的四边、地图中心点坐标和最大与最小高层差,以便在绘制地形时确定屏幕的显示位置和鼠标控制的缩放和移动比例。
2.2 利用OpenGL实现算法的可视化
Open GL是Open Graphics Library 的缩写,它是SGI公司开发的一套高性能图形处理系统,是图形硬件的软件接口,意为开放的图形库。通过OpenGL程序员可以创建交互式的应用程序,实现具有逼真效果的三维图形图像。由于其开放性和高度的可重用性,目前已成为业界标准。 OpenGL被设计成独立于硬件,独立于窗口系统的,在运行各种操作系统的各种计算机上都可用,并能在网络环境下以客户/服务器模式工作,是专业图形处理、科学计算等高端应用领域的标准图形库。
[8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr />为了便于我们后期的LOD地形简化,我们一般要将地形绘制成三角格网的形式。在绘制三角形时,由于地形不可能都是规则的长方形或正方形,考虑到一般地形的多样性和复杂性,不能够将点简单的连线。根据三角形的四种形式,每个构成三角形的点都先按照四边形的方式进行划分成四个点(如图2)。
4 |
3 结论
在现实中,我们需要生成的地形往往是很庞大,很复杂的,因此不能够仅利用某一种算法和某一种搜索方式生成全部的地形。对于大范围的复杂地形,就必须先对地形按起伏程度进行区域分块,对不同的区域选择合适的算法和搜索方式。参考文献
[1] Donald Hearn ,M.Pauline Baker .Computer Graphics [M].电子工业出版社,1998[2] Edwward Angel. OpenGL:A Primer Second Edition[M]. 北京:清华大学出版社,2005[3 ] Dave Shreiner,Mason Woo等 OpenGL Programming Guide(Fourth Edition[M].)北京:人民邮电出版,2005[4] 刘建永, 王源等. 战场环境信息学[M]. 理工大学工程兵工程学院 2002[5] 张立强等. 三维地形数据的简化和空间分析的研究[J]. 系统仿真学报, 2004.3
[8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr />
相关文章:
在J2ME/MIDP中实现图像旋转04-26
一种硬实时调度算法的可行性判定及实现04-26
密文数据库加脱密引擎的设计与应用04-26
SNMP在电信设备远程故障检测中的应用04-26
具有状态保持机制的EPG系统研究与实现04-26
MPEG-4中运动估计模块的改进与优化04-26
公益林生态效益补偿政策对农户收入及政策满意度的影响04-26
初中教师专业伦理素养现状调查探讨——以河北省十所公04-26
基于XML的虚拟企业电子合同实现04-26