Zeichnen Sie einen Kreis in android mit opengl-es-Ergebnisse in einem Quadrat

Ich versuche einen Kreis zu zeichnen in opengl-es-mit dem folgenden code. Es schafft eine Reihe von Punkte um einen Kreis herum. Wenn ich drucken Sie die Werte, die in der vertex-array, es kann gesehen werden, dass Sie form Punkte um einen Kreis herum.

//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

Und die Aufrufe von opengl in meiner Zeichnung Funktion:

//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();

Jedoch bekomme ich nie einen Kreis auf den Bildschirm gezeichnet, immer nur ein Quadrat. Ich bin sehr verwirrt, jede Hilfe ist willkommen 🙂

  • Für die anderen Lesen diese Frage, Sie sollten Bedenken, dass eine Möglichkeit zum Debuggen, könnte dies zur Verringerung der Zahl der Iterationen in der Schleife (auch eine Wiederholung) und sehen, was passiert und wie es schief geht, mit mehr und mehr Iterationen.
Schreibe einen Kommentar