8 votos

La transformación 3d dos triángulos

Tengo dos triángulos en 3d. Necesito calcular la transformación de la matriz(3X3) entre dos triángulos en 3D.

1) ¿Cómo puedo calcular la matriz de transformación(rígidos), mientras que la fijación de uno de los puntos a la de origen(para deshacerse de la traducción de la parte)?

2) ¿Cómo afecta a si la deformación no es rígido?

5voto

steve Puntos 11

1) La matriz de transformación es en general de 4x4: \begin{equation} \begin{bmatrix} R&t\\ 0&1\\ \end{bmatrix} \end{equation} con $R$ ser un 3x3 matriz de rotación y $t$ ser un vector de translación.

Deje $x_1,x_2,x_3\in\mathbb{R}^3$ ser el primer triángulo y $\bar{x}_1,\bar{x}_2,\bar{x}_3\in\mathbb{R}^3$ el segundo.

A continuación, las siguientes Arun et al. 1987, obtenemos:

\begin{equation} c = \frac{1}{3}(x_1 + x_2 + x_3), \quad \bar{c} = \frac{1}{3}(\bar{x}_1 + \bar{x}_2 + \bar{x}_3), \quad\text{(calculate centroids)} \end{equation}

\begin{equation} y_i = x_i-c, \quad \bar{y}_i = \bar{x}_i-\bar{c}, \quad\text{(subtract centroids from points)} \end{equation}

\begin{equation} H = y_1\bar{y}_1^\top + y_2\bar{y}_2^\top + y_3\bar{y}_3^\top, \quad U\cdot\Sigma\cdot V^\top = H \quad\text{(singular value decomposition)} \end{equation}

\begin{equation} R = V U^\top, \quad t = c - R\bar{c} \end{equation}

2) La solución anterior es un ajuste de mínimos cuadrados, por lo que si hay es una pequeña deformación esto no debe afectar el resultado demasiado. Es difícil decir más acerca de ella, si no sabemos qué tipo de deformación que estamos esperando (cambio de escala sólo, afín a la deformación, o algo más).

1voto

CodingBytes Puntos 102

Dejar que los dos triángulos ser$(O,A,B)$$(O,A', B')$, poner ${\bf a}:=OA$, $\,{\bf b}:=OB$, y lo mismo para $A'$, $B'$. Entonces usted está buscando una transformación lineal $T:\ {\mathbb R}^3\to{\mathbb R}^3$ tal que $T{\bf a}={\bf a}'$, $\ T{\bf b}={\bf b}'$. En primer lugar, una transformación es no se determina únicamente. En ${\mathbb R}^3$, se pueden prescribir las imágenes ${\bf a}_i'$ de los tres vectores linealmente independientes ${\bf a_i}$ a fin de determinar lineal mapa de $T$ únicamente.

Tal vez hay más circunstancias presentes en su situación. Por ejemplo, los dos triángulos que podría ser euclidiana congruentes, para empezar, y $T$ debe ser una rotación. En este caso las condiciones $$T{\bf a}={\bf a}', \quad T{\bf b}={\bf b}', \quad T({\bf a}\times{\bf b})={\bf a}'\times {\bf b}'$$ determinar una cierta rotación $T$ (de la cual la matriz de $T$ con respecto a la norma base) de forma exclusiva. Para probar esto, considere los tres vectores ${\bf a}$, ${\bf b}$, ${\bf a}\times{\bf b}$ como una nueva forma de ${\mathbb R}^3$.

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