7 votos

¿Cómo puedo convertir una representación de ángulo de eje en una representación de ángulo de Euler?

Este es un problema de CAD, pero creo que se reduce a las matemáticas.

Tengo una esfera que necesito rotar, y el programa que uso necesita que le dé la rotación sobre 3 ejes fijos. Esto sería fácil si por casualidad quisiera rotar sobre uno de esos ejes, pero no es así.

Para conseguirlo, necesito una función que transforme la representación del ángulo del eje en una representación del ángulo de Euler.

Los desplazamientos del eje de rotación respecto a los ejes de coordenadas son: -17°, +40° y -30°

La aplicación tiene símbolos como los siguientes junto a los ángulos:

enter image description here

He encontrado este titulado "Conversión Eje-Angulo a Euler", que parece lo que necesito, pero no estoy seguro de la terminología. ¿Se relacionan el "rumbo", la "actitud" y la "inclinación" con las desviaciones anteriores, y el "ángulo" con el ángulo de la rotación deseada sobre el eje?

3voto

Anthony Shaw Puntos 858

A continuación, ajustamos $\delta$ en el rango especificado por $(2)$ , $\sigma_B=\pm1$ y $\sigma_C=\pm1$ hasta conseguir la rotación requerida.

Ángulos $\alpha$ , $\beta$ y $\gamma$

Dejemos que $\alpha$ , $\beta$ y $\gamma$ sean los ángulos de la $X$ , $Y$ y $Z$ al eje de rotación, $A$ . Estos tres ángulos están relacionados por la Teorema de Pitágoras : $$ \cos^2(\alpha)+\cos^2(\beta)+\cos^2(\gamma)=1\tag{1} $$ Estos ángulos, junto con el ángulo $\delta$ se supondrá que está en el rango $[0,\pi]$ .


Ángulos $\rho_X$ , $\rho_Y$ y $\rho_Z$

Consideremos el diagrama de la esfera

$\hspace{3.2cm}$enter image description here

Para cada valor de $\delta$ para que $$ \sin^2(\delta)\ge\max\left(\cos^2(\alpha),\cos^2(\gamma)\right)\tag{2} $$ el círculo de radio $\delta$ sobre $Y$ interseca tanto el círculo de radio $\alpha$ sobre $X$ y el círculo de radio $\gamma$ sobre $Z$ en uno o dos puntos.

Utilizando el Ley esférica de los cosenos podemos calcular $$ \angle AXY=2\tan^{-1}\left(\frac{\cos(\gamma)}{\sin(\alpha)+\cos(\beta)}\right)\tag{3} $$ Para cada $\alpha$ et $\delta$ Hay una o dos soluciones para $B$ . Para tener en cuenta esto, dejemos que $\sigma_B=\pm1$ . Entonces $$ \begin{align} \rho_X&=\angle AXY-\sigma_B\cos^{-1}\left(\frac{\cos(\delta)}{\sin(\alpha)}\right)\tag{4}\\ \angle YBX&=\pi-\sigma_B\cos^{-1}(\cot(\alpha)\cot(\delta))\tag{5}\\ \angle XYB&=\sigma_B\cos^{-1}\left(\frac{\cos(\alpha)}{\sin(\delta)}\right)\tag{6} \end{align} $$ Utilizando la ley esférica de los cosenos, podemos calcular $$ \angle YZA=2\tan^{-1}\left(\frac{\cos(\alpha)}{\sin(\gamma)+\cos(\beta)}\right)\tag{7} $$ Para cada $\gamma$ et $\delta$ Hay una o dos soluciones para $C$ . Para tener en cuenta esto, dejemos que $\sigma_C=\pm1$ . Entonces $$ \begin{align} \rho_Z&=\angle YZA-\sigma_C\cos^{-1}\left(\frac{\cos(\delta)}{\sin(\gamma)}\right)\tag{8}\\ \angle ZCY&=\pi-\sigma_C\cos^{-1}(\cot(\gamma)\cot(\delta))\tag{9}\\ \angle CYZ&=\sigma_C\cos^{-1}\left(\frac{\cos(\gamma)}{\sin(\delta)}\right)\tag{10} \end{align} $$ Por coherencia, defina $\sigma_A=\mathrm{sgn}(\cos(\beta))$ . Desde $\angle XYZ=\frac\pi2$ , $$ \begin{align} \rho_Y&=\frac\pi2-\angle XYB-\angle CYZ\tag{11}\\ \angle XAZ&=\pi-\sigma_A\cos^{-1}(\cot(\alpha)\cot(\gamma))\tag{12} \end{align} $$


Ángulo de rotación

Las rotaciones $\rho_X$ , $\rho_Y$ y $\rho_Z$ calculado arriba fijará el eje $A$ . Contabilización de transporte paralelo la rotación alrededor del eje $A$ es igual a la curvatura geodésica total $$ \rho_X\cos(\alpha)+\rho_Y\cos(\delta)+\rho_Z\cos(\gamma)\tag{13} $$ menos el área de la región deltoidea de color rojo claro (ya que se recorre en el sentido de las agujas del reloj).

Utilizando Teorema de Girard las áreas de los triángulos morados son $$ \begin{align} |\triangle A|&=\angle ZXA+\angle AZX+\angle XAZ-\pi\\ |\triangle B|&=\angle BXY+\angle XYB+\angle YBX-\pi\\ |\triangle C|&=\angle YZC+\angle CYZ+\angle ZCY-\pi \end{align}\tag{14} $$ Las áreas de los sectores blancos son $$ \begin{align} |\unicode{x2AA6} X|&=\rho_X\,(1-\cos(\alpha))\\ |\unicode{x2AA6} Y|&=\rho_Y\,(1-\cos(\delta))\\ |\unicode{x2AA6} Z|&=\rho_Z\,(1-\cos(\gamma)) \end{align}\tag{15} $$ El área del deltoide rojo claro es $$ \frac\pi2-|\triangle A|-|\triangle B|-|\triangle C|-|\unicode{x2AA6} X|-|\unicode{x2AA6} Y|-|\unicode{x2AA6} Z|\tag{16} $$ Tenga en cuenta que dependiendo de los signos de $\sigma_B$ et $\sigma_C$ El deltoide, de color rojo claro, puede tener una o dos lunas adheridas.

Restando $(16)$ de $(13)$ produce una rotación de $$ |\triangle A|+|\triangle B|+|\triangle C|+\rho_X+\rho_Y+\rho_Z-\frac\pi2\tag{17} $$ Cuatro aplicaciones del Teorema de Girard reducen $(17)$ a $$ \angle XBY+\angle YCZ+\angle ZAX-2\pi\tag{18} $$


Ejemplo:

Supongamos que $\alpha=\gamma=\frac\pi3$ et $\beta=\frac\pi4$ . Tenga en cuenta que $\cos^2(\alpha)+\cos^2(\beta)+\cos^2(\gamma)=1$ .

Por $(2)$ podemos elegir cualquier $\delta$ para que $\sin^2(\delta)\ge\frac14$ . Sea $\delta=\frac\pi6$ .

$(3)$ : $\angle AXY=0.615479708670388$

$(4)$ : $\rho_X=0.615479708670388$

$(5)$ : $\angle YBX=\pi$

$(6)$ : $\angle XYB=0$

$(7)$ : $\angle YZA=0.615479708670388$

$(8)$ : $\rho_Z=0.615479708670388$

$(9)$ : $\angle ZCY=\pi$

$(10)$ : $\angle CYZ=0$

$(11)$ : $\rho_Y=\frac\pi2$

$(12)$ : $\angle XAZ=1.91063323624902$

$(18)$ dice que la rotación es $1.91063323624902$ .


Tenga en cuenta que los ángulos especificados en su pregunta no satisfacen $(1)$ : $$ \cos^2(\alpha)+\cos^2(\beta)+\cos^2(\gamma)=2.25134287511099\ne1 $$ No hay ningún punto que sea $-17^\circ$ , $+40^\circ$ y $-30^\circ$ de los ejes de coordenadas.

0voto

Anthony Shaw Puntos 858

Como sus ángulos no funcionan con la interpretación original, vamos a suponer que representan el ángulo de rotación en cada eje. Es decir, la rotación viene dada por $$ \hspace{-8mm} A=\begin{bmatrix} \cos(\gamma)&\sin(\gamma)&0\\ -\sin(\gamma)&\cos(\gamma)&0\\ 0&0&1 \end{bmatrix} \begin{bmatrix} \cos(\beta)&0&-\sin(\beta)\\ 0&1&0\\ \sin(\beta)&0&\cos(\beta) \end{bmatrix} \begin{bmatrix} 1&0&0\\ 0&\cos(\alpha)&\sin(\alpha)\\ 0&-\sin(\alpha)&\cos(\alpha)\\ \end{bmatrix}\tag{1} $$ Creo que la forma más fácil de encontrar el eje para dicha rotación es utilizar la fórmula que doy en esta respuesta para encontrar el eje de rotación, $v$ para una matriz de rotación, $A$ .

Dejemos que $u$ sea cualquier columna de $A^T-I$ . Podemos encontrar el coseno del ángulo de rotación mediante $$ \cos(\theta)=\frac{u\cdot Au}{|u|^2}\tag{2} $$ El seno del ángulo de rotación viene dado por $$ \sin(\theta)=\pm\frac{v\cdot u\times Au}{|v||u|^2}\tag{3} $$ El signo utilizado en $(3)$ depende de la definición del producto cruzado y de la orientación de los ejes de coordenadas.


Ejemplo:

Para $\alpha=-17^\circ$ , $\beta=40^\circ$ , $\gamma=-30^\circ$ , $(1)$ rinde $$ A=\begin{bmatrix} 0.663413948168938 & -0.640907051572032 & -0.386160697922698 \\ 0.383022221559489 & 0.734217757814514 & -0.560551747746327 \\ 0.642787609686539 & 0.223969719728075 & 0.732571944233734 \end{bmatrix} $$ Utilizando la primera fórmula de la respuesta citada, obtenemos que el eje de rotación es $$ v=\begin{bmatrix} 0.256626911763841\\ -0.336582028018252\\ 0.334940238250282 \end{bmatrix} $$ Dejemos que $u$ sea la primera columna de $A^T-I$ : $$ u=\begin{bmatrix} -0.336586051831062\\ -0.640907051572032\\ -0.386160697922698 \end{bmatrix} $$ $(2)$ dice $\cos(\theta)=0.565101825108593$ et $(3)$ da $\sin(\theta)=0.825021167764159$ .

Por lo tanto, $\theta=0.970239657223180=55.59^\circ$ .

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