1.三角形扇
一个三角形扇以一个中心顶点作为起始,使用相邻的两个顶点创建第一个三角形,接下来的每个顶点都会创建一个三角形,围绕起始的中心点按扇形展开。为了使这个扇形闭合,我们只需要在最后重复第二个点。(以长方形为例)
构建三角形扇的步骤,如下图所示:
要使用OpenGL绘制这个三角形扇,需要在渲染类的onDrawFrame()中,使用如下方法:
GLES20.glDrawArray(GLES20.GL_TRIANGLE_FAN,0,6);
第一个参数是告诉OpenGL要绘制一个三角形扇,第二参数是告诉OpenGL从本地顶点数据的第几个位置开始取顶点坐标,第三个参数是告诉OpenGL要取多少个顶点坐标。
根据上面的6个点,就可以绘制一个长方形了。
三角形扇在OpenGL的应用:长方形,正方形,圆等。
2.三角形带
一个三角形带的前三个顶点定义了第一个三角形。这之后的每个额外的顶点都定义了另外的一个三角形。
构建三角形带的步骤,如下图所示:
要使用OpenGL绘制这个三角形带,需要在渲染类的onDrawFrame()中,使用如下方法:
GLES20.glDrawArray(GLES20.GL_TRIANGLE_STRIP,0,6);
第一个参数是告诉OpenGL要绘制一个三角形带,第二参数是告诉OpenGL从本地顶点数据的第几个位置开始取顶点坐标,第三个参数是告诉OpenGL要取多少个顶点坐标。
三角形带在OpenGL的应用:长方形,圆柱的侧面等。
3.圆柱体
想象一下在自己的手机上构建的圆柱体,并且以一个角度观察它,假如我们把圆柱放在桌面上,从侧面观察它,你会发现,圆柱体是一个由一个顶部的圆加上侧面卷起来的长方形构成。结合本文前2节的讲解,就可以知道其实就是一个三角形带和三角形扇构建一个圆柱体。
要构建三角形扇,我们首先定义一个圆心顶点,接着,我们围绕圆心的点按扇形展开,并把第一个点绕圆周重复两次使其圆闭合。我们接下来使用三角函数和单位圆的概念生成那个点。
为了生成沿一个圆周边的点,我们首先需要一个循环,它的覆盖范围从0到360度的整个圆,或者0到2π弧度。要找到圆周上的一个点的X的位置,我们需要调用cos(angle),如果你是放在Z-X平面那么,Z的位置我们就需要调用sin(angle);我们用圆的半径缩放这两个位置。这是圆柱上的圆的绘画过程。
如果是圆柱的侧面,我们就需要看图了解一下,我们假设圆柱垂直方向以Y为中心,圆柱高height,得到如下图:
我们该怎么用程序绘画出来这个圆柱体呢?其实在OpenGL如果想绘制的图像越清晰,那么它绘制的点就会越多越密集,所以由我们自己决定绘制这个圆柱体需要多少个顶点。
我们要计算圆柱体顶部顶点数量的方法作为开始,我们定义一个求圆柱体上面圆的顶点数的方法,如下:
private static int sizeOfCricleInVertices(int numPoint){