1 votos

Cómo calcular un ángulo en dirección específica en sentido contrario a las agujas del reloj entre vectores

Tengo un vector entrante y varios vectores salientes en 2D.

Necesito calcular un ángulo de la siguiente manera: Imagina un vector entrante paralelo al eje x. Luego, el valor del ángulo "comienza" debajo del vector entrante y aumenta en sentido antihorario.

Por favor, mira la imagen de ejemplo: Ángulos entre vectores.

  1. El vector entrante es $\overrightarrow{AB}$. Los vectores salientes son $\overrightarrow{BC}$, $\overrightarrow{BD}$ y $\overrightarrow{BE}$. Según la definición anterior: $\alpha$ es el ángulo más pequeño y $\gamma$ es el ángulo más grande en esta situación.

  2. El vector entrante es $\overrightarrow{FG}$. Los vectores salientes son $\overrightarrow{GH}$ y $\overrightarrow{GJ}$. $\delta <\epsilon$.

Necesito seleccionar algorítmicamente el vector saliente con el ángulo más pequeño (definido anteriormente).

¿Cómo puedo calcular este ángulo específico?

0voto

Steve Kass Puntos 5967
  1. Traduce la imagen para que el vector entrante termine en el origen. (Resta las coordenadas de su "punta" de cada punta y cola).

  2. Invierte la punta y la cola del vector entrante para que tenga su cola en el origen.

  3. Escala cada vector por su longitud, para que cada uno tenga longitud 1. (Divide las coordenadas de cada punto por la longitud del vector del cual es un punto final).

  4. Encuentra el ángulo hacia el vector de entrada traducido y escalado medido en sentido contrario a las agujas del reloj desde el origen. Debido a que ahora es un vector unitario con la cola en el origen, su punta está en $(\cos\theta, \sin\theta)$ para un ángulo único $0\le\theta<2\pi$.

  5. Rota todo en sentido horario alrededor del origen por este ángulo $\theta$, utilizando la transformación estándar de rotación que lleva $(x, y)$ a $(x\cos\theta+y\sin\theta, -x\sin\theta+y\cos\theta)$.

  6. Ahora la punta de cada vector es $(\cos\theta, \sin\theta)$ para un ángulo único diferente $0\le\theta<2\pi$. Estos son los ángulos que deseas.

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