Rotation in OpenGL



  • Hallo zusammen.

    ich habe vor einen Rubikwürfel zu programmieren, aber leider hab ich schwierigkeiten mit dem befehl "glRotatef".

    Das Problem ist das sich der Würfel zwar um 2 Achsen drehen lässt aber nicht über 3. Ich weiß das die Reihenfolge, wie man rotatef aufruft, entscheident ist. Allerdings ist immer eine Achse dabei um der falsch dreht wird. die drehung soll jewils um 5 Grad geschehen bis eine Seite um 90 grad gedreht wurde.

    glLoadIdentity();
    glScalef(1,1,1);
    
    glTranslatef(0.0, 0.0, -12.0);
    
    glRotatef(newcubie[i][j][k].rotationX, 1.0, 0.0, 0.0);				
    glRotatef(newcubie[i][j][k].rotationY, 0.0, 1.0, 0.0);
    glRotatef(newcubie[i][j][k].rotationZ, 0.0, 0.0, 1.0);	
    
    paintCubie(size, positionX[i][j][k], positionY[i][j][k], positionZ[i][j][k], newcubie[i][j][k].face);
    

    hoffe mit kann jmd weiter helfen



  • Lass die Finger von den Matrizen-Funktionen aus OpenGL. Die sind deprecatet.



  • EOutOfResources schrieb:

    Lass die Finger von den Matrizen-Funktionen aus OpenGL. Die sind deprecatet.

    Kommt drauf an welche Version von OpenGL man verwendet. Wenn man mit OpenGL 2.x arbeitet, ist es legitim diese zu verwenden. Von daher ist deine Aussage so nicht richtig.
    Man muss nicht jeden auf OpenGL3 prügeln.

    Nur von glBegin/glEnd sollte man absehen bzw versuchen wann immer es geht darauf zu verzichten.


Anmelden zum Antworten