Calcular el ángulo entre dos vectores en C++

Muhammad Adil 12 octubre 2023
Calcular el ángulo entre dos vectores en C++

Las matemáticas vectoriales son una rama de las matemáticas que se ocupa de los vectores, que son objetos geométricos con magnitud y dirección. Por ejemplo, el ángulo formado por las colas de un vector es igual al ángulo formado por dos vectores.

Debemos notar que el ángulo formado por los dos vectores se mantiene entre y 180°. Este artículo trata sobre cómo calcular el ángulo entre dos vectores.

Calcular el ángulo entre dos vectores en C++

Podemos calcular el ángulo de un vector, A, tomando el producto escalar de A y otro vector, B. El producto escalar se calcula multiplicando sus magnitudes y sumando sus ángulos. Aprendamos a continuación.

Producto escalar en C++

El producto escalar es una de las operaciones matemáticas que acepta dos vectores y devuelve un escalar. Entonces, por ejemplo, podemos calcular un ángulo del vector, A, tomando el producto escalar de A y otro vector, B.

El producto escalar se calcula multiplicando sus magnitudes y sumando sus ángulos. La magnitud del vector es la longitud del segmento de línea desde su origen hasta su punta, mientras que la dirección del vector se refiere a su orientación específica.

Pasos para encontrar el ángulo en plano 2D y 3D

Los pasos para encontrar el ángulo entre dos vectores en planos 2D y 3D son los siguientes:

  • Declarar dos vectores con sus longitudes y dirección.
  • Encuentra la magnitud de cada vector.
  • Calcular el producto escalar de estos dos vectores.
  • Encuentra el ángulo entre los dos vectores usando θ = Cos-1 [(a · b) / (|a| |b|)], si los vectores están en el plano 2D.
  • Si los vectores están en un plano 3D, usa esta fórmula θ = Cos-1 [(a · b · c) / (|a| |b| |c|)]

Además de los planos 2D y 3D, hay una excepción crítica que debe conocer como programador.

Cuando sus vectores están situados dentro de un plano con un vector normal conocido n en lugar de colocados aleatoriamente, el eje de rotación se orientará en la misma dirección que n, y la orientación de n fijará una orientación para ese eje.

En esta situación, puedes modificar el θ = Cos-1 [(a · b) / (|a| |b|)] añadiendo n al determinante para aumentar su tamaño.

Ejemplo

float Angles(const x &a, const y &b) {
  float d = dot(a, b) / (length(v0) * length(v1));
  return acos(demo(d, 3, 4f)) * RAD2DEG;
}
Muhammad Adil avatar Muhammad Adil avatar

Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.

Facebook

Artículo relacionado - C++ Vector