Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: CoLSoN2 en 13 de Enero de 2003, 09:49:05 PM

Título: Guardar rotaciones
Publicado por: CoLSoN2 en 13 de Enero de 2003, 09:49:05 PM
                                Os pongo un ejemplo. Tengo un dado que inicialmente tiene el 1 hacia arriba y el 6 hacia abajo. Quiero una forma para guardar estas rotaciones en un fichero para luego cargarlas y que el efecto sea el mismo. Si roto 90º en Y, luego 90º en X y luego -90º en Y, el efecto quedaría distinto a si roto el total de la suma de rotaciones (0Y, 90X).
- Debería usar quaterniones y guardar los valores x,y,z,w ?                                
Título: Guardar rotaciones
Publicado por: Mars Attacks en 13 de Enero de 2003, 10:04:52 PM
                                Deberías pensar en lo que estás haciendo. Rotas 90 en Y y 90 en X, con lo cual has modificado los ejes del objeto. Lo que antes era Y en la última rotación será X.
Prueba a guardar todas las rotaciones que haces en el mismo orden y así no tendrás problemas. O abre los dedos pulgar, índice y medio de tus manos, asígnales un eje a cada uno y comprueba cómo cambian esos ejes a medida que los rotas.

He estado haciendo un "simulacro" de las rotaciones que describes y quedan algo así:

90º en Y (el eje Z pasa a ser el nuevo X)
90º en X (y por tanto en el antiguo Z, y ahora el Y es el Z y el X es el Y)
-90º en Y (que era el antiguo X, así que el Y es el X, el Z es el Z y el X es el Y)

tendrías que rotar 90º en Y, 90º en Z y -90º en X para obtener la misma rotación que al principio, o algo así.                                
Título: Guardar rotaciones
Publicado por: BeRSeRKeR en 13 de Enero de 2003, 10:08:43 PM
                                Pilla la matriz de transformación del dado o en tu caso la de rotación, y guárdala en un archivo. Aunque para eso mejor la guardas como un quaternion, como tú dices, que ocupa menos...

Saludos