次のコードを使ってOpenGL-esで円を描こうとしています。それは円の周りにいくつかの点を作成します。頂点配列の値をプリントアウトすると、円の周りにポイントを形成することがわかります。OpenGL-esで円を描くと正方形になります
// Create verticies for a circle
points=40;
vertices = new float[(points+1)*3];
//CENTER OF CIRCLE
vertices[0]=0.0f;
vertices[1]=0.0f;
vertices[2]=0.0f;
for (int i = 3; i<(points+1)*3; i+=3){
double rad = deg2rad(i*360/points);
vertices[i] = (float) (Math.cos(rad));
vertices[i+1] = (float) (Math.sin(rad));
vertices[i+2] = 0;
}
// vertexBuffer is filled with verticies
そして、私の描画機能でのOpenGLの呼び出し:
// IN MY DRAWING FUNCTION:
gl.glPushMatrix();
gl.glTranslatef(x, y, 0);
gl.glScalef(size, size, 1.0f);
gl.glColor4f(1.0f,1.0f,1.0f, 1.0f);
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer);
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glDrawArrays(GL10.GL_TRIANGLE_FAN, 0, points/2);
gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
gl.glPopMatrix();
私は画面に描かれた円、しか四角を取得することはありませんが。私は非常に混乱しています、どんな助けも高く評価されています:)
これをデバッグする方法は、ループ内の反復回数を減らし(1回の反復であっても)、何が起こるのか、反復回数が増えるにつれてどうなるのかを確認することが望ましいと考えるべきです。 – fabspro