Ich möchte Winkel vergleichen und eine Vorstellung von der Entfernung zwischen ihnen bekommen. Für diese Anwendung arbeite ich in Grad, aber es würde auch für Bogenmaß und Absolventen funktionieren. Das Problem bei Winkeln ist, dass sie von einer modularen Arithmetik abhängen, dh 0-360 Grad.
Angenommen, ein Winkel liegt bei 15 Grad und einer bei 45. Der Unterschied beträgt 30 Grad, und der 45-Grad-Winkel ist größer als der 15-Grad-Winkel.
Dies bricht jedoch zusammen, wenn Sie beispielsweise 345 Grad und 30 Grad haben. Obwohl sie richtig verglichen werden, beträgt der Unterschied zwischen ihnen 315 Grad anstatt der korrekten 45 Grad.
Wie kann ich das lösen? Ich könnte algorithmischen Code schreiben:
if(angle1 > angle2) delta_theta = 360 - angle2 - angle1;
else delta_theta = angle2 - angle1;
Aber ich würde eine Lösung vorziehen, die Vergleiche / Verzweigungen vermeidet und sich ausschließlich auf Arithmetik stützt.