Quiero comparar ángulos y tener una idea de la distancia entre ellos. Para esta aplicación, estoy trabajando en grados, pero también funcionaría para radianes y graduados. El problema con los ángulos es que dependen de la aritmética modular, es decir, 0-360 grados.
Digamos que un ángulo está a 15 grados y uno está a 45. La diferencia es de 30 grados, y el ángulo de 45 grados es mayor que el de 15 grados.
Pero, esto se rompe cuando tienes, digamos, 345 grados y 30 grados. Aunque se comparan correctamente, la diferencia entre ellos es de 315 grados en lugar de los 45 grados correctos.
¿Como puedo resolver esto? Podría escribir código algorítmico:
if(angle1 > angle2) delta_theta = 360 - angle2 - angle1;
else delta_theta = angle2 - angle1;
Pero preferiría una solución que evite comparaciones / ramificaciones, y se base completamente en la aritmética.