Tutoriales

Ángulo entre dos vectores 3D en C

El ángulo entre dos vectores A = (Ax, Ay, Az) y B = (Bx, By, Bz) se calcula mediante el arcocoseno de la relación que existe entre el producto escalar de dichos vectores y los módulos de cada vector. Su fórmula es la siguiente:

En programación hay varias soluciones, una es usando la función atan2. El código en C es el siguiente pero podéis cambiarlo fácilmente a cualquier otro lenguaje de programación:

#include <stdio.h>
#include <math.h>

int main()
{
    double ax = 0.0, ay = 1.0, az = 0.0;
    double bx = 1.0, by = 0.0, bz = 0.0;

    double cross = sqrt(ax * ax + ay * ay + az * az);
    double dot = ax * bx + ay * by + az * bz;

    double angle = atan2(cross, dot) * 180.0 / M_PI;

    printf("%lf\n", angle);

    return 0;
}
Manuel Ignacio López Quintero

Doctor en Ingeniería Informática especializado en Sistemas Inteligentes y Visión Artificial. Profesor y coadministrador de Linux Hispano. Para más información o para contactar con él visita su página oficial: Manuel Ignacio López Quintero.

Compartir
Publicado por
Manuel Ignacio López Quintero

Entradas recientes

432 CVEs

5 días hace

Anti-IA

2 semanas hace

Memoria

3 semanas hace

Mal uso

4 semanas hace

Precio de la RAM

1 mes hace

AUR

1 mes hace