94 votos

Teniendo en cuenta esta matriz de transformación, ¿cómo descomponerla en traducción, rotación y escala de matrices?

Tengo este problema desde mi Gráficos curso. Dada esta matriz de transformación:

$$\begin{pmatrix} -2 &-1& 2\\ -2 &1& -1\\ 0 &0& 1\\ \end{pmatrix}$$

Necesito extracto de traslación, rotación y escala de matrices. También he de tener la respuesta (que es $TRS$): $$T=\begin{pmatrix} 1&0&2\\ 0&1&-1\\ 0&0&1\end{pmatrix}\\ R=\begin{pmatrix} 1/\sqrt2 & -1/\sqrt2 &0 \\ 1/\sqrt2 & 1/\sqrt2 &0 \\ 0&0&1 \end{pmatrix}\\ S=\begin{pmatrix} -2/\sqrt2 & 0 & 0 \\ 0 & \sqrt2 & 0 \\ 0& 0& 1 \end{pmatrix} % 1 0 2 1/sqrt(2) -1/sqrt(2) 0 -2/sqrt(2) 0 0 %T = 0 1 -1 R = /1/sqrt(2) 1/sqrt(2) 0 S = 0 sqrt(2) 0 % 0 0 1 0 0 1 0 0 1 $$

Sólo tengo ni idea (excepto para la Traducción de la matriz) cómo me gustaría llegar a esta solución.

90voto

dahma Puntos 46

Soy una persona desde el futuro, y yo tenía el mismo problema. Para futura referencia, aquí está el algoritmo para 4x4. Usted puede resolver su 3x3 problema mediante el relleno de su problema para los grandes dimensiones.

Comience con una matriz de transformación:$$ \begin{bmatrix} a & b & c & d\\ e & f & g & h\\ i & j & k & l\\ 0 & 0 & 0 & 1 \end{bmatrix} $$

  1. Extracto De La Traducción
    Esto es, básicamente, la última columna de la matriz:$$ \vec{t} = <d,h,l> $$Mientras estás en ello, cero en la matriz.

  2. Extracto De Escala
    Para esto, se toma la longitud de los tres primeros vectores columna:$$ s_x = \|<a, e, i>\|\\ s_y = \|<b, f, j>\|\\ s_z = \|<c, g, k>\|\\ \vec{s} = <s_x,s_y,s_z> $$

  3. Extracto De Rotación
    Divida a los tres primeros vectores columna por los factores de escalado usted acaba de encontrar. Su matriz de ahora debería tener este aspecto (recordemos que el cero de la traducción):$$ \begin{bmatrix} a/s_x & b/s_y & c/s_z & 0\\ e/s_x & f/s_y & g/s_z & 0\\ i/s_x & j/s_y & k/s_z & 0\\ 0 & 0 & 0 & 1 \end{bmatrix} $$Esta es la matriz de rotación. Hay métodos para convertir a cuaterniones, y desde allí al eje angular, si usted desea cualquiera de esas lugar.

de recursos

29voto

Javier Puntos 1260

Parece que están trabajando con Afín a las Matrices de Transformación, que es también el caso en la otra respuesta que usted hace referencia, que es estándar para trabajar con 2D gráficos por ordenador. La única diferencia entre las matrices y las personas que en la otra respuesta es que el tuyo uso de la forma cuadrada, en lugar de rectangular de forma aumentada.

Así, el uso de las etiquetas de la otra respuesta, tendría

$$ \left[ \begin{array}{ccc} a & b & t_x\\ c & d & t_y\\ 0 & 0 & 1\end{array}\right]=\left[\begin{array}{ccc} s_{x}\cos\psi & -s_{x}\sin\psi & t_x\\ s_{y}\sin\psi & s_{y}\cos\psi & t_y\\ 0 & 0 & 1\end{array}\right] $$

Las matrices que se buscan, a continuación, tomar la forma:

$$ T=\begin{pmatrix} 1 & 0 & t_x \\ 0 & 1 & t_y \\ 0 & 0 & 1 \end{pmatrix}\\ R=\begin{pmatrix} \cos{\psi} & -\sin{\psi} &0 \\ \sin{\psi} & \cos{\psi} &0 \\ 0 & 0 & 1 \end{pmatrix}\\ S=\begin{pmatrix} s_x & 0 & 0 \\ 0 & s_y & 0 \\ 0 & 0 & 1 \end{pmatrix} $$

Si usted necesita ayuda con la extracción de los valores, la otra respuesta ha explícita fórmulas.

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