zoukankan      html  css  js  c++  java
  • 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、绘制效果


  • 相关阅读:
    摘:SQL Server数据类型的25种
    二维码简介和容错率的问题
    PHP QR Code
    Git 更新操作
    [转载]ecmall语言包程序
    linux 从百度网盘下载文件的方法
    Linux定时备份数据到百度云盘
    nginx整合php+lua+oracle环境搭建
    php 36进制与10进制转换
    “互联网+”取代O2O将成为2016最大风口
  • 原文地址:https://www.cnblogs.com/xianyin05/p/1432361.html
Copyright © 2011-2022 走看看