• 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、绘制效果


  • 相关阅读:
    36-图像有用区(dfs, bfs)
    35-迷宫寻宝(一)-NYOJ82
    34- 24 Point game
    32-回文字符串(dp)
    71-n皇后
    70-合并数字
    2017.11.18 C语言的算法分析题目
    2017.11.17 C++系列---用malloc动态给c++二维数组的申请与释放操作
    2017.11.16 JavaWeb-------第八章 EL、JSTL、Ajax技术
    2017.11.15 JavaWeb的学生体质管理系统
  • 原文地址:https://www.cnblogs.com/xianyin05/p/1432361.html
Copyright © 2020-2023  润新知