美文网首页android基础知识
Android OpenGL ES - 绘制线、面

Android OpenGL ES - 绘制线、面

作者: CHSmile | 来源:发表于2017-10-25 14:41 被阅读115次

    前言

    之前一篇文章讲了如何绘制点,所谓两点成线,三点成面。一个立体图形就是由很多面组成,在OpenGL ES中,面特指一个三角形。
    绘制调用glDrawArrays(int mode, int first, int count)方法
    mode的参数可以选择

     GL_POINTS ————绘制独立的点
    
     GL_LINE_STRIP————绘制连续的线段,不封闭
    
     GL_LINE_LOOP————绘制连续的线段,封闭
    
     GL_LINES————顶点两两连接,为多条线段构成
    
     GL_TRIANGLES————每隔三个顶点构成一个三角形
    
     GL_TRIANGLE_STRIP————每相邻三个顶点组成一个三角形
    
     GL_TRIANGLE_FAN————以一个点为三角形公共顶点,组成一系列相邻的三角形
    
    例子

    我设置一个顶点数组如下

    //顶点数组
            private float[] mArray = {
                      -0.6f , 0.6f , 0f,
                      -0.2f , 0f , 0f ,
                       0.2f , 0.6f , 0f ,
                       0.6f , 0f , 0f
            };
    

    指定绘制模式为GL_POINTS

    gl.glDrawArrays(GL10.GL_POINTS, 0, 4);

    效果图


    这里写图片描述

    指定绘制模式为GL_LINE_STRIP

    gl.glDrawArrays(GL10.GL_LINE_STRIP, 0, 4);

    效果图


    这里写图片描述

    指定绘制模式为GL_LINE_LOOP

    gl.glDrawArrays(GL10.GL_LINE_LOOP, 0, 4);

    效果图


    这里写图片描述

    指定绘制模式为GL_LINES

    gl.glDrawArrays(GL10.GL_LINES, 0, 4);

    效果图


    这里写图片描述

    指定绘制模式为GL_TRIANGLES

    gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 4);

    效果图,PS:当顶点个数不足以绘制第二个三角形时,就忽略


    这里写图片描述

    指定绘制模式为GL_TRIANGLE_STRIP

    gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);

    效果图,我用虚线隔开了,它本身是两个相邻三角形组成


    这里写图片描述

    指定绘制模式为GL_TRIANGLE_FAN

    gl.glDrawArrays(GL10.GL_TRIANGLE_FAN, 0, 4);

    效果图,我用虚线隔开了,它本身以第一个顶点为公共点,绘制了相邻的三角形


    这里写图片描述

    相关文章

      网友评论

        本文标题:Android OpenGL ES - 绘制线、面

        本文链接:https://www.haomeiwen.com/subject/amuqpxtx.html