valor trigonometricas trigonometria son rotacion resueltos razones punto posicion por plano paso pasa para normal las lado indica geometricas funciones figuras encuentra ejercicios determinado cuyo cuales cartesiano cada angulos angulo math vector trigonometry angle

math - trigonometricas - Dado el punto de inicio, ángulos en cada eje de rotación y una dirección, calcular el punto final



lado terminal de un angulo en posicion normal (3)

Tengo un punto de inicio en coordenadas 3D, p. Ej. (0,0,0).

Tengo la dirección que estoy señalando, representada por tres ángulos, uno para cada ángulo de rotación (rotación en X, rotación en Y, rotación en Z) (por el bien del ejemplo, supongamos que soy una de esas viejas tortugas logo) con una pluma) y la distancia que recorreré en la dirección que estoy señalando.

¿Cómo voy a calcular las coordenadas del punto final?

Sé que para un sistema 2D sería simple:

new_x = old_x + cos(angle) * distance new_y = old_y + sin(angle) * distance

pero no puedo descifrar cómo aplicar esto a 3 dimensiones

Supongo que otra forma de pensar sobre esto sería tratar de encontrar un punto en la superficie de una esfera, sabiendo la dirección hacia la que apunta y el radio de la esfera.


Basado en los tres ángulos, tienes que construir la matriz de rotación de 3x3. Entonces, cada columna de la matriz representa las direcciones locales x, y y z. Si tiene una dirección local por la que desea moverse, multiplique la rotación de 3x3 con el vector de dirección para obtener el resultado en coordenadas globales.

Hice una pequeña introducción a las transformaciones de coordenadas 3D que creo que responderán a su pregunta.

Coordenadas 3D


En primer lugar, para posicionar un punto en 3D solo necesitas dos ángulos (como solo necesitas uno en 2D)

En segundo lugar, por diversas razones (slow cos & sin, gimbal lock, ...) es posible que desee almacenar la dirección como vector en primer lugar y evitar todos los ángulos.

De todos modos, Asumir dirección está inicialmente z alineado, luego gira alrededor del eje x seguido de la rotación alrededor del eje y.

x = x0 + distancia * cos (ánguloZ) * sin (ánguloY)

Y = y0 + distancia * sin (Anglez)

Z = z0 + distancia * cos (ánguloZ) * cos (ánguloY)


Primero, es extraño tener tres ángulos para representar la dirección: dos serían suficientes. En segundo lugar, el resultado depende del orden en que gire sobre los ejes respectivos. Las rotaciones sobre diferentes ejes no se conmutan.

Posiblemente solo está buscando la conversión entre coordenadas esféricas y cartesianas .