從零開始OpenGL ES(三) 繪製四邊形
阿新 • • 發佈:2018-11-16
原理
現在要實現用OpenGLES 實現四邊形. 一個四邊形是可以由兩個三角形構成 那麼我畫兩個相連的三角形來實現一個四邊形.
如圖
有個規定.:圖形環繞方向必須一致,要麼全是順時針 要麼全是逆時針
1、GL_TRIANGLES:
v1, v2, v3,
v3, v2, v4,
對應的陣列
private final float[] vertexData={ -1f,0f, 0f,-1f, 0f,1f, 0f,1f, 0f,-1f, 1f,0f };
需要修改一個地方, 因為一個三角形是三個頂點,兩個三角形就是六個頂點
GLES20.glDrawArrays(GLES20.GL_TRIANGLES, 0, 3);
//改成
GLES20.glDrawArrays(GLES20.GL_TRIANGLES, 0, 6);
分析: 只分析右半邊的三角形
要渲染右邊的三角形
v3 的座標 x ,y 為 (0,1)
v2 的座標 x, y 為 (0,-1)
v4 的座標 x, y 為 (1,0)
可以 做出v3,v2,v4的點
private final float[] vertexData={
0f,1f,
0f ,-1f,
1f,0f
};
四邊形
使用 GL_TRIANGLE_STRIP 屬性
有了這個屬性的話可以複用點
其實平行四邊形就是四個點 那麼改造陣列
private final float[] vertexData={
-1f,0f,
0f,-1f,
0f,1f,
1f,0f
};
然後修改glDrawArrays 的屬性
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4) ;
因為是四個頂點所以改成4
後面兩個引數 0 是起始 (從第幾個點起始) 4 是數量
最後的效果和上面一致
相關程式碼