Voglio confrontare gli angoli e avere un'idea della distanza tra loro. Per questa applicazione, sto lavorando in gradi, ma funzionerebbe anche per radianti e laureati. Il problema con gli angoli è che dipendono dall'aritmetica modulare, cioè 0-360 gradi.
Supponiamo che un angolo sia a 15 gradi e uno a 45. La differenza è di 30 gradi e l'angolo di 45 gradi è maggiore di quello di 15 gradi.
Ma questo si interrompe quando hai, diciamo, 345 gradi e 30 gradi. Sebbene si confrontino correttamente, la differenza tra loro è di 315 gradi anziché i 45 gradi corretti.
Come posso risolvere questo? Potrei scrivere codice algoritmico:
if(angle1 > angle2) delta_theta = 360 - angle2 - angle1;
else delta_theta = angle2 - angle1;
Preferirei una soluzione che eviti confronti / rami e si basi interamente sull'aritmetica.