我想用opengl-es在下面的代码中绘制一个圆。它围绕一个圆圈创建了许多点。如果我打印出顶点数组中的值,可以看到它们围绕一个圆形成点。在android中用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
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
对于阅读此问题的其他人,他们应该考虑调试这种方法的一种方法可能是减少循环中的迭代次数(甚至是一次迭代),并查看会发生什么以及随着越来越多的迭代如何出错。 –
2012-04-28 10:35:18