OpenGl Würfel zeichnen



  • Ich würde gerne 2 Würfel zeichnen die um ein gemeinsames Zentrum kreisen.

    ich möchte den Würfel allerdings nicht "normal" mit

    glBegin(GL_QUADS);
    glVertex3f(....);
    ...
    

    machen, sondern hab da ein bestimmtes Format vorgegeben.

    static float[][] punkte = new float[][] {
          new float[]{ 0.5f,  0.5f,  0.5f},
          new float[]{ 0.5f, -0.5f,  0.5f},
          new float[]{-0.5f, -0.5f,  0.5f},
          new float[]{-0.5f,  0.5f,  0.5f},
          new float[]{ 0.5f,  0.5f, -0.5f},
          new float[]{ 0.5f, -0.5f, -0.5f},
          new float[]{-0.5f, -0.5f, -0.5f},
          new float[]{-0.5f,  0.5f, -0.5f}};
    
        static int[,] faces = {{0, 1, 2, 3}, {0, 4, 5, 1}, {7, 3, 2, 6}, 
                               {4, 7, 6, 5}, {2, 1, 5, 6}, {0, 3, 7, 4}};
    

    das Punkte Array enthält die Koordinaten der 8 Ecken des Würfel und faces gibt die Reihenfolge der Ecken an.

    Hab gesehen das man eine Würfel dieses Formats mit glVertexPointer und glDrawElements angeben kann - aber leider funtioniert das nicht! weiß zufällig jemand wie das geht?
    Und wie kann man die beiden Würfel dann um ein gemeinsames Zentrum kreisen lassen?

    Danke schön
    lg Lara



  • wie glvertexpointer genau funktioniert, weiss ich nicht. grundsätzlich ist es allerdings ein konstrukt, welches einem array von primitiven datentypen eine struktur zuweist. also in deinem fall müsste das wohl ein array mit 3*4*6 floats sein. 3 floats je würfelecke, 4 ecken je seite, 6 seiten. mit gldrawelements kann dieses array dann beispielsweise als eine folge von GL_QUADS gerendert werden.

    das muss jetzt aber nicht korrekt sein 😉

    um dasselbe zentrum kann man elemente kreisen lassen, indem jedes element sein eigenens korrdinatensystem erhält. das geht, indem die definition eines objekts ("draw-methode") in glPushMatrix() und glPopMatrix() "eingeklammert" wird.


Anmelden zum Antworten