ArcEngine+OpenGL之四 创建三角形(转)

ArcEngine+OpenGL之四 创建三角形收藏
上一课中,我教您如何在ArcEngine中创建一个OpenGL窗口。这一课中,我将教您如何创建三角形。我们讲使用GL_TRIANGLES来创建一个三角形。
1、    获取三角形三个点的经纬度,然后转化为地心坐标。
                   //Convert the mouse coordinate into a geocentric (OpenGL) coordinate system.
            double glX, glY, glZ;
            m_globeViewUtil.GeographicToGeocentric(40.56046, 0.03374, 5, out glX, out glY, out glZ);
            double glX1, glY1, glZ1;
            m_globeViewUtil.GeographicToGeocentric(40.56046, 0.0325, 5, out glX1, out glY1, out glZ1);
            double glX2, glY2, glZ2;
            m_globeViewUtil.GeographicToGeocentric(40.56229, 0.03249, 120, out glX2, out glY2, out glZ2);
           
2、 开始绘制三角形。
GL.glBegin(GL.GL_TRIANGLES);
     lBegin(GL_TRIANGLES)的意思是开始绘制三角形,glEnd() 告诉OpenGL三角形已经创建好了。通常您会需要画3个顶点,可以使用GL_TRIANGLES。在绝大多数的显卡上,绘制三角形是相当快速的。如果要 画四个顶点,使用GL_QUADS的话会更方便。但据我所知,绝大多数的显卡都使用三角形来为对象着色。最后,如果您想要画更多的顶点时,可以使用 GL_POLYGON。

本节的简单示例中,我们只画一个三角形。如果要画第二个三角形的话,可以在这三点之后,再加三行代码(3点)。所有六点代码都应包含在glBegin (GL_TRIANGLES)和glEnd()之间。在他们之间再不会有多余的点出现,也就是说,(GL_TRIANGLES)和glEnd()之间的点 都是以三点为一个集合的。这同样适用于四边形。如果您知道实在绘制四边形的话,您必须在第一个四点之后,再加上四点为一个集合的点组。另一方面,多边形可 以由任意个顶点,(GL_POLYGON)不在乎glBegin(GL_TRIANGLES)和glEnd()之间有多少行代码。

glBegin之后的第一行设置了多边形的第一个顶点,glVertex 的第一个参数是X坐标,然后依次是Y坐标和Z坐标。第一个点是上顶点,然后是左下顶点和右下顶点。glEnd()告诉OpenGL没有其他点了。这样将显示一个填充的三角形。

3、OpenGL代码

         // GL.glPointSize(50.0f);
            GL.glColor3ub(255, 255, 0);
            GL.glBegin(GL.GL_TRIANGLES);
            GL.glVertex3f((float)glX, (float)glY, (float)glZ);
            GL.glVertex3f((float)glX1, (float)glY1, (float)glZ1);
            GL.glVertex3f((float)glX2, (float)glY2, (float)glZ2);
            GL.glEnd();

4、绘制效果


原文地址:https://www.cnblogs.com/xianyin05/p/1432361.html