2013-06-18 7 views
0

i ont donc un cube 3D et j'ai un 3x3 de la matrice que je transformerai pour obtenir un angle et un axe à utiliser comme paramètresOpenGL Cube 3D Rotation

gl.glRotatef (angle, x, y , z);

Cependant, le cube ne tourne pas correctement et il semble que la méthode

glTranslatef (float x, y flotteur, flotter z)

comme une grande importance, mais je ne sais pas vraiment ce que il fait .. Voici le code:

@Override 
public void onDrawFrame(GL10 gl) { 
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);   
    gl.glLoadIdentity(); 

    gl.glTranslatef(0.0f, 0.0f, -10.0f); 

    gl.glRotatef(angle, x, y, z); 

    mCube.draw(gl); 

} 
angle

, x, y et z sont les valeurs que je reçois après la transformation de la matrice.

Qu'est-ce que je fais?

Merci.

Répondre

0

Que voyez-vous lorsque vous exécutez ce programme?

Juste pour vous assurer, la définition de glRotatef est ici: http://msdn.microsoft.com/en-us/library/windows/desktop/dd368577(v=vs.85).aspx

La partie 'angle' est en degrés. J'ai fait l'erreur de lui donner quelques radians, et il semble que mon objet ne tourne pas. GlTranslatef déplace également votre objet dans la direction +/- xyz. Traditionnellement, + y est en haut, + x est à droite, et + z est dans l'écran. Cela peut changer en fonction de quelques choses différentes, comme votre matrice de vue.

+0

MERCI! Je ne savais pas que c'était en degrés, donc j'ai juste multiplié par 57.2957795 pour obtenir la valeur en degré et cela fonctionne comme un charme! –