科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件利用OpenGL实现内插算法可视化

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

OpenGL是一种交互式计算机图形系统,具有绘制三维图形的功能,能高效地编写出可操纵图形硬件的程序,支持三维可视化的实现。

作者:宋晓江 殷宏 杨勇 来源:计算机与信息技术 2007年10月16日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
2、利用OpenGL实现算法的可视化

  Open GL是Open Graphics Library 的缩写,它是SGI公司开发的一套高性能图形处理系统,是图形硬件的软件接口,意为开放的图形库。通过OpenGL程序员可以创建交互式的应用程序,实现具有逼真效果的三维图形图像。由于其开放性和高度的可重用性,目前已成为业界标准。 OpenGL被设计成独立于硬件,独立于窗口系统的,在运行各种操作系统的各种计算机上都可用,并能在网络环境下以客户/服务器模式工作,是专业图形处理、科学计算等高端应用领域的标准图形库。

  为了便于我们后期的LOD地形简化,我们一般要将地形绘制成三角格网的形式。在绘制三角形时,由于地形不可能都是规则的长方形或正方形,考虑到一般地形的多样性和复杂性,不能够将点简单的连线。根据三角形的四种形式,每个构成三角形的点都先按照四边形的方式进行划分成四个点(如图2)。

  
  图2 三角形四种情况下点的的划分

  在图中,三角形中必有一个点被两个编号所代表,然后按照1-2-4-1-3-4的顺序进行连接,必然能绘制出四种情况中的任何一种三角形。通过上述操作,可以实现程序能运用到所有地形的显示。

  程序代码如下:

private void DrawTriangle
 (Point3D Point1, Point3D Point2, Point3D Point3, Point3D Point4 )
{
 GL.glBegin(GL.GL_TRIANGLES);//开始绘三角形
 GL.glVertex3d(Point1.x, Point1.y, Point1.z);//从1起笔
 GL.glVertex3d(Point2.x, Point2.y, Point2.z);//画到2
 GL.glVertex3d(Point4.x, Point4.y, Point4.z); //画到4
 GL.glVertex3d(Point1.x, Point1.y, Point1.z); //画到1
 GL.glVertex3d(Point3.x, Point3.y, Point3.z); //画到3
 GL.glVertex3d(Point4.x, Point4.y, Point4.z); //画到4
 GL.glEnd();//完成一个三角形的绘制
}

  通过上述操作,可以将图2的点视图转化为三角形格网试图(如图3)。

  
  (a)加权平均内插数学模型

  
  (b)多面函数内插数学模型

  
  (c)最小二乘内插数学模型

  图3 利用搜索圆实现地形的三角形格网视图

  结论

  在现实中,我们需要生成的地形往往是很庞大,很复杂的,因此不能够仅利用某一种算法和某一种搜索方式生成全部的地形。对于大范围的复杂地形,就必须先对地形按起伏程度进行区域分块,对不同的区域选择合适的算法和搜索方式。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章