ubicacion son relativa que posicion para niños localizacion las geograficas geografia entre ejercicios diferencia definición coordenadas absoluta c++ math rotation directx

c++ - son - Calcule la posición absoluta del punto que tiene la posición antes de los ángulos de rotación y rotación



que es localizacion wikipedia (2)

¿Cómo puedo rotar el punto (x, y, z) por ángulos (rx, ry, rz) sobre sus respectivos ejes?

Es decir, ¿cómo determino el punto (x1, y1, z1) resultante de la rotación de (x, y, z) por ángulos de rotación (rx, ry, rz) ?

¿Hay alguna rutina DirectX que logre esto?


Durante mis clases de electrónica (EM) aprendí la conversión de cordinates cartesianos a polares usando la fórmula

x = r sinq cosf, y = r sinq sinf, z = r cosq

Más información aquí

q es theta, f es phi.


Lo que está preguntando es cómo usar los ángulos de Euler para realizar rotaciones. Hay varias convenciones entre las que puede elegir, pero me parece que le interesa aplicar la rotación sobre el eje Z, seguido de la rotación sobre Y y luego la rotación sobre X. Para esto, debe publicar multiplicar por la matriz

dónde

c1 = cos(rx) s1 = sin(rx) c2 = cos(ry) s2 = sin(ry) cs = cos(rz) s3 = sin(rz)

Hay varios problemas con este enfoque, uno de los más comunes es el bloqueo cardánico . El enfoque preferido es usar una de las formulaciones de eje de ángulo. Los dos más comunes son las rotaciones cuaternión de unidades y las matrices de rotación de Euler-Rodreigues . Estos se pueden componer para generar cualquiera de las 12 matrices de rotación de Euler definiendo explícitamente tres ejes de rotación y sus ángulos de rotación asociados y luego multiplicando la representación de rotación resultante en el orden inverso para que se apliquen a los vectores que se van a girar.

DirectX usa Quaternions para realizar rotaciones .