1 votos

¿Cómo extraer la matriz de rotación y el vector de escala de una transformación afín 3D?

Para la transformación afín: $$ \begin{bmatrix} a & b & c\\ e & f & g\\ i & j & k\\ \end{bmatrix} $$

¿cómo extraigo las partes de rotación y escala?

Según esta respuesta la escala a lo largo de cada eje puede extraerse tomando la longitud de la columna respectiva de la matriz, pero ¿qué ocurre con el signo de la escala? Esto me interesa especialmente porque la matriz podría utilizarse para dar la vuelta a un eje utilizando una escala de -1.

2voto

John Hughes Puntos 27780

Una de las razones por las que no encuentras respuestas es que hay no es una respuesta en general. Algunas transformaciones afines (incluso sin una traducción, como éste): $$ \pmatrix{1 & 1 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1} $$ no puede como producto de cualquier escala y cualquier rotación. Así que ahí no hay solución.

Por otra parte, una matriz como $$ \pmatrix{-1 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & 1} $$ puede escribirse como producto de una escala y una rotación en dos diferente maneras:

  1. girar $180$ grados en la $xy$ -plano, escala $= (1, 1, 1)$

  2. girar $0$ grados, escala $= (-1, -1, 1)$

De hecho, si tiene

rotación por $A$ grados en la $xy$ plano; escala por $(p, q, 1)$ ,

eso es siempre lo mismo que "girar por $A + 180$ grados, escala por $(-p, -q, 1)$ "por lo que la respuesta es nunca único. Incluso la transformación de identidad es a la vez "sin rotación, escala por $(1,1, 1)$ " y "girar 180 grados, escalar por $(-1, -1, 1)$ ."

Sé que no es la respuesta que querías, pero es la verdad, y puede que te ayude a dejar de buscar una respuesta que no existe. (O puede que te ayude a reformular tu pregunta a una que hace tener una respuesta).

0voto

user247327 Puntos 1594

Una matriz de rotación pura tendrá determinante 1. Hallar el determinante de la matriz dada. Esa será la "escala". Dividiendo la matriz por su determinante se obtiene la matriz de rotación pura.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X