Quero comparar ângulos e ter uma idéia da distância entre eles. Para esta aplicação, estou trabalhando em graus, mas também funcionaria para radianos e graduados. O problema dos ângulos é que eles dependem da aritmética modular, ou seja, de 0 a 360 graus.
Digamos que um ângulo esteja em 15 graus e um em 45. A diferença é 30 graus e o ângulo de 45 graus é maior que o de 15 graus.
Mas, isso ocorre quando você tem, por exemplo, 345 e 30 graus. Embora eles sejam comparados corretamente, a diferença entre eles é de 315 graus, em vez dos 45 graus corretos.
Como posso resolver isso? Eu poderia escrever código algorítmico:
if(angle1 > angle2) delta_theta = 360 - angle2 - angle1;
else delta_theta = angle2 - angle1;
Mas eu prefiro uma solução que evite comparações / ramificações e dependa inteiramente da aritmética.