4 votos

¿Cómo encontrar un centro/eje de rotación?

Tengo un modelo 3d (M1) formado por varios puntos. Conozco todas sus coordenadas. También tengo otro modelo (M2). M2 y M1 son el mismo, pero M2 es un modelo después de la transformación rígida. No conozco el eje ni el centro de transformación. Lo único que sé es el tipo de transformación - traslación o rotación. Así que mi pregunta es - ¿cómo puedo encontrar el centro o el eje de rotación, y el valor del ángulo?

1voto

m0j0 Puntos 181

El paso del cuadro original (sin imprimar) al nuevo (imprimado) es bastante sencillo: $\vec{x'} = \vec{x} + \vec{R},$ avec $\vec{R}$ siendo un vector constante de traslación.

La rotación es un poco más complicada. Hay que tener en cuenta hasta tres ángulos: uno por cada eje principal. Estas rotaciones se expresan como un producto de matrices de rotación . Los elementos de las matrices producto son los cosenos de dirección de los ejes originales y los nuevos ejes.

0voto

Gregor Puntos 111

Se puede derivar la transformada de base T que mapea M1 a M2 (I explicó el proceso aquí ). Una vez hecho esto, puedes "leer" los vectores base y utilizar los cosenos de los ejes para determinar el ángulo.

0voto

tom Puntos 16

¡! SI Si puede identificar los "mismos" puntos en los dos modelos (tal vez el mismo índice en las matrices de puntos), puede "elegir" una traslación que fije el punto de rotación. \s y hacer que compartan un eje común:

Calcular el punto medio de cada uno de los dos modelos (tal vez casco convexo para simplificar, soporte imprimado para M2): $$\overline{p}=\frac{1}{n}\sum_{k=1}^np_k, \space \overline{p}^{'}=\frac{1}{n}\sum_{k=1}^np_k^{'}$$ Ahora, $\vec T=\overline{p}^{'}-\overline{p}$ es el vector de traslación.
A continuación, aplique $-\vec T$ a $M_2$ para que también tenga punto medio $\overline{p}$ (Por lo tanto, como si se gira alrededor de $\overline{p}$ ) y denotemos $M_2^{'}$

A continuación, elija dos puntos correspondientes de los modelos ( $p_1,p_2 \in M_1, \space p^{'}_1,p^{'}_2 \in M_2^{'}$ ), y utilizarlos para construir dos vectores: $$\vec{x}=p_2-p_1, \space \vec{x}^{'}=p^{'}_2-p^{'}_1.$$
El eje de rotiación puede obtenerse mediante el producto cruzado (normalizado): $$\vec {Ro}=\frac{\vec x \times \vec{x}^{'}}{|\vec x|^2}$$ Entonces, el ángulo es justo: $$\theta_{Ro}=\arcsin(|\vec {Ro}|)$$

Todo esto corresponde a:
1. $M_1$
2. Gire por $\theta_{Ro}$ acerca de $\overline{p}$ avec $\vec {Ro}$ correspondiente al eje de rotación.
3. Traducir por $\vec T$
4. $M_2$

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