计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

利用OpenGL实现内插算法可视化(1)

2015-04-12 01:09
导读:计算机应用论文论文,利用OpenGL实现内插算法可视化(1)论文样本,在线游览或下载,科教论文网海量论文供你参考: 摘 要 OpenGL是一种交互式计算机图形系统,具有绘制三维图形的
摘 要 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个字符来存储。第一个数据为采样离散点的总数,第二到第九个数据分别为所选地形左下、左上、右上、右下点的平面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被设计成独立于硬件,独立于窗口系统的,在运行各种操作系统的各种计算机上都可用,并能在网络环境下以客户/服务器模式工作,是专业图形处理、科学计算等高端应用领域的标准图形库。 共2页: 1 [2] 下一页 论文出处(作者):
上一篇:JPEG2000编码方案和结构划分研究(1) 下一篇:没有了