Im tratando de hacer una simple rotación de un cubo sobre los ejes X e Y:cuaterniones rotación matriz de OpenGL
Quiero girar siempre el cubo sobre el eje x por una cantidad x y girar el cubo sobre el eje Y por una cantidad y independiente de la rotación del eje x
primera i ingenuamente hizo:
glRotatef(x,1,0,0);
glRotatef(y,0,1,0);
entonces
pero que los primeros Gira ov er x luego gira sobre y quiero rotar sobre la y independientemente del acceso x.
me puse a buscar en los cuaterniones, así que intenté:
Quaternion Rotation1;
Rotation1.createFromAxisAngle(0,1, 0, globalRotateY);
Rotation1.normalize();
Quaternion Rotation2;
Rotation2.createFromAxisAngle(1,0, 0, globalRotateX);
Rotation2.normalize();
GLfloat Matrix[16];
Quaternion q=Rotation2 * Rotation1;
q.createMatrix(Matrix);
glMultMatrixf(Matrix);
que sólo lo hace casi exactamente lo que se logró haciendo 2 glRotates consecutivos ... así que creo im perder el paso o 2.
¿Los cuaterniones son el camino a seguir o debería usar algo diferente? Y si los cuaterniones son el camino a seguir, ¿qué pasos puedo agregar para hacer que el cubo gire independientemente de cada eje? Creo que alguien tiene el mismo problema: Rotating OpenGL scene in 2 axes
bien déjame decirlo de esta manera ... lo que quiero hacer es girar un cubo con el ratón. Quiero a la izquierda para controlar la rotación del eje y de las pantallas y luego controlar y bajar las pantallas x rotación del eje. Quiero que giren independientemente del otro eje, pero solo roten en las pantallas del eje global. Si hago 2 glRotations no obtengo este comportamiento porque la rotación de un eje mutila al otro. – yeahdixon
Por ejemplo, girar un cubo: operaciones sin rotaciones revela un solo lado luego hago glRotatef (90,1,0,0); \t glRotatef (45,0,1,0); \t ⁃ \t me da un cubo inclinado (diamante), cuando quería un cubo que tenía su esquina frente a la cámara que en realidad sería el resultado del intercambio de las operaciones: \t glRotatef (45,0,1,0); \t glRotatef (90,1,0,0); Simplemente cambiaría los comandos de rotaciones, pero eso tiene los mismos problemas cuando se cambian los valores de ángulo. – yeahdixon