一、2D制圖。?
1.構建opengl es 的基本開發框架
回調android.opengl.GLSurfaceView.Renderer.
在Renderer借口中定義如下3個方法。
void onSurfaceCreated(GL10 gl, EGLConfig config) //創建或者被重建的時候調用,設置初始化功能。
void?onDrawFrame(GL10 gl) //繪制每一幀時調用,類似View中的onDraw方法。在該方法中繪制2D或3D圖形。
?void onSurfaceChanged(GL10 gl, int width, int height)//界面(主視圖)發生改變時調用,不管窗口尺寸是否發生變化,在程序開始的時候至少執行一次。
Opengl 的坐標系。
opengl的坐標是三維的,所以三個點確定一個坐標。
onDrawFrame方法里的glTranslatef方法,是將坐標的中心原點沿xyz的方向移動。
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);//允許設置頂點。
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer);//設置頂點。
gl.glVertexPointer(坐標的維數, 定點的類型, 步長,頂點緩存);
gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, vertices.length / 3);//繪制圖形。
gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);//在開啟頂點設置功能后,必須使用該代碼,關閉頂點設置功能。
?
2.顏色:
其中顏色分為:Smooth Color (平滑顏色),Flat Clolr(單色調顏色)
先說簡單的Flat Color顏色把。
在使用單色調之前,必須關閉顏色渲染功能,要不然不起作用。
直接調用方法glColor4f(red,gree,blue,alpha)方法。
在來說說相對復雜的平滑顏色
在使用平滑顏色時需要開啟顏色渲染功能。
gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
然后通過glColorPointer方法可以進行平滑著色。
gl.glColorPointer(4, GL10.GL_FLOAT, 0, colorBuffer);和glVertexPointer方法的參數相似。
其中第一個數字4表示每一個顏色的值的數目(R,G,B.A)
最后需要對顏色渲染功能進行關閉。
gl.glDisableClientState(GL10.GL_COLOR_ARRAY);
?
3.旋轉
旋轉的方法是void glRotatef(float angle,float x,float y,float z)
其中angle表示選擇的角度,后邊的x,y,z意思是,按照那個點去旋轉。
最后需要在onDrawFrame方法的最好不斷變化rotate變量,才能保存選擇,
rotate+=1;
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
