Je veux comparer les angles et avoir une idée de la distance entre eux. Pour cette application, je travaille en degrés, mais cela fonctionnerait également pour les radians et les diplômés. Le problème avec les angles est qu'ils dépendent de l'arithmétique modulaire, c'est-à-dire 0-360 degrés.
Disons qu'un angle est à 15 degrés et un à 45. La différence est de 30 degrés et l'angle de 45 degrés est supérieur à celui de 15 degrés.
Mais cela tombe en panne lorsque vous avez, disons, 345 degrés et 30 degrés. Bien qu'ils se comparent correctement, la différence entre eux est de 315 degrés au lieu des 45 degrés corrects.
Comment puis-je résoudre ça? Je pourrais écrire du code algorithmique:
if(angle1 > angle2) delta_theta = 360 - angle2 - angle1;
else delta_theta = angle2 - angle1;
Mais je préférerais une solution qui évite les comparaisons / branches, et repose entièrement sur l'arithmétique.