
图2 三角形四种情况下点的的划分
|
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 利用搜索圆实现地形的三角形格网视图
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