Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: PIM en 06 de Marzo de 2013, 11:33:29 PM

Título: Significado de los elementos en la Matriz
Publicado por: PIM en 06 de Marzo de 2013, 11:33:29 PM
Hola de nuevo amigos de esta inmejorable web. De nuevo molestándolos con una duda, ¿Cuál es el significado de cada elemento en la matriz? Me explico, en todos lados aparece algo como esto:

a1  a5  a9    a13
a2  a6  a10  a14
a3  a7  a11  a15
a4  a8  a12  a16

a13, a14 y a15 establecen la posición del objeto es decir que a13 sería = X, a14 = Y a15 = Z ¿Correcto?

Pero ¿qué son a1, a2, a3, a5, a6, a7, a9, a10 y a11? ¿Qué significa cada uno ellos?, He leido que establecen la orientación del objeto (es decir hacia a donde miran) pero no entiendo del todo qué significan.

Ahora, todavía tengo más dudas al ver que para la escala de un objeto se usan a1, a6 y a11, algo así como  a1 = escX, a6 = escY y a11 = escZ. pero ¿Qué no eran de orientación?

Bueno ojalá me puedan ayudar.

Muchas gracias.
^_^'
Título: Re:Significado de los elementos en la Matriz
Publicado por: julen26 en 07 de Marzo de 2013, 09:43:29 AM
No estoy seguro, pero diría que las 3 primeras columnas son vectores se suelen utilizar para determinar el sistema de referencia (que marcan la dirección, escala...). Y el último vector para la posición (desplazamiento).
La última linea no recuerdo bien si era un extra para diferenciar putos y vectores, no estoy muy familiarizado con ello.
Título: Re:Significado de los elementos en la Matriz
Publicado por: XÑA en 07 de Marzo de 2013, 12:28:55 PM
RotaX.x RotaY.x RotaZ.x 1
RotaX.y RotaY.y RotaZ.y 1
RotaX.z RotaY.z RotaZ.z 1
x              y             z       1

Esto es para  directX, tienes que transponer tu matriz.

La escala se hace además con la diagonal principal:

ScaleX
            ScaleY
                          ScaleZ
Título: Re:Significado de los elementos en la Matriz
Publicado por: PIM en 07 de Marzo de 2013, 07:42:40 PM
Ah, creo que ya entendí. Muchas gracias.

Ahora tengo una duda más, tengo la siguiente matriz de rotación:

1.0       0.0        0.0        2.07814
0.0      -0.809017   0.587785   0.0
0.0      -0.587785  -0.809017   0.0
0.0       0.0        0.0        1.0


Alguien sería tan amable de decirme ¿cómo extraigo el ańgulo de rotación de esta matriz?

Muchas gracias.
;)
Título: Re:Significado de los elementos en la Matriz
Publicado por: bnl en 07 de Marzo de 2013, 09:01:14 PM
http://www.formauri.es/arrobamasmas/Articulos/indexArticulo.php?art=2
Título: Re:Significado de los elementos en la Matriz
Publicado por: PIM en 07 de Marzo de 2013, 09:36:21 PM
Ejem, gracias pero lo que veo es que ahí se construye una matriz de rotación a partir de un ángulo. Pero yo quiero saber lo opuesto, dada una matriz, saber  su angulo de rotación.

Muchas gracias.
^_^'
Título: Re:Significado de los elementos en la Matriz
Publicado por: Manu343726 en 08 de Marzo de 2013, 08:58:28 AM
Si es sólo una matriz de rotación, y sabes que tipo de rotación es (eje x,y,o z) simplemente haciendo el arco seno u arco coseno del elemento correspondiente te debería salir (ojo con los signos). Si esa matriz de rotación la has obtenido a partir de un cuaternion, sacas el cuaternion a partir de la matriz de rotación, y sacas el ángulo de este.

Título: Re:Significado de los elementos en la Matriz
Publicado por: PIM en 09 de Marzo de 2013, 02:27:03 AM
Muchas gracias por tu respuesta. Sí, ya lo encontré.  :)

Aprovechando su conocimiento y su buena disponibilidad, me gustaría saber solo algo más. Teniendo la siguiente matriz:
           1.0        0.0        0.0        0.0
           0.0        1.0        0.0        0.0
           0.0        0.0        1.0        0.0
           0.0        0.0        0.0        1.0


¿Cómo hago para rotar 20 grados en el eje X, -128 grados en el eje Y y 71.2 grados en el eje Z?. Es decir como plasmo es esta matriz esas rotaciones simultaneas en sus respectivos ejes.


De nuevo muchas gracias.
^_^'
Título: Re:Significado de los elementos en la Matriz
Publicado por: blau en 09 de Marzo de 2013, 09:49:55 AM
Supongo que no estaras con Xna... pero supongo que si estas usando alguna libreria para las matrices habra algun metodo parecido...

     Matrix transform;
     transform.Decompose(out scale, out rotation, out translation);
Título: Re:Significado de los elementos en la Matriz
Publicado por: PIM en 09 de Marzo de 2013, 05:22:53 PM
Muchas gracias a todos por su ayuda. Por fin resolví mi problema.

:) :) :D :D ;)