找论文网 > 计算机论文 > 计算机应用 >

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

 摘  要   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] 下一页


一种结合混沌密码理论的彩色图像水印算法
SQL Server 2005数据加密技术应用研究
工商管理 | 工科论文 | 财务管理 | 管理学 | 公共管理 | 财政税收 | 证券金融 | 会计审计 | 计算机 | 法律论文 | 医药学 | 汉语言文学
社会论文 | 工科论文 | 理科论文 | 文化论文 | 艺术论文 | 文学论文 | 哲学论文 | 政治论文 | 英语论文 | 写作指导 | 计算机应用
www.zlunwen.com 找论文网 ® 版权所有 网站地图