1 votos

La rotación de un punto a otro en un plano numérico 2D

Título lo dice todo, estoy buscando la fórmula para obtener la orientación desde un punto hacia otro en un plano numérico. He encontrado ejemplos de esto para lat/lon alrededor de la tierra pero eso no es exactamente lo que necesito. Gracias

2voto

sewo Puntos 58

¿Exactamente qué es un "rumbo" para ti? Los rumbos de la brújula suelen citarse con 0° significando hacia el norte y aumentando en sentido horario, mientras que en matemáticas en general la convención es considerar 0° como hacia la derecha, y aumentando en sentido antihorario.

Para un rumbo de brújula, la respuesta convencional es $\tan^{-1}\left(\frac{E_2-E_1}{N_2-N_2}\right)$, donde $(E_1,N_1)$ y $(E_2,N_2)$ son las coordenadas (este, norte) de tus dos puntos. Sin embargo, hay varios puntos a tener en cuenta:

  1. Probablemente la función arcotangente te dé valores en radianes, los cuales tendrás que convertir a grados tú mismo.

  2. Si los nortes son iguales, terminarás dividiendo por cero. Esto debe tratarse como un caso especial, respondiendo 90° o 270° según corresponda.

  3. La fórmula tampoco puede distinguir entre una dirección y su opuesta directa, así que necesitas añadir 180° si $N_2

  4. Las direcciones en los cuadrantes noroeste terminarán como números negativos entre $-$90° y 0°; deberás sumar 360° a esos para que parezcan rumbos de brújula ordinarios.

Si estás buscando crear una implementación informática, verifica si tu lenguaje de programación tiene una función atan2 -- se encargará automáticamente de los puntos 2 y 3 para ti. Normalmente debería llamarse como atan2(e2-e1,n2-n1), pero he escuchado rumores sobre lenguajes que necesitan que des los argumentos en orden opuesto.

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