Micha: Winkel auf "Gleichheit" prüfen

Beitrag lesen

Hallo,

ich suche nach einer eleganten Lösung zu prüfen, ob Winkel gleich sind. Zunächst definiere ich alle Winkel als positiv. Ein Negativer Winkel wird also so lange um 2*PI erweitert, bis er positiv ist - andersrum nutz ich Modular, um ihn auf den Vollkreis zu reduzieren.

Probleme bereiten mir nun Winkel nahe Null. Ist ein sehr kleiner Winkel negativ, wird er um 2*Pi erweitert. Vergleich ich diesen nun mit einem kleinen pos. Winkel, so erhalte ich "große" Differenzen obwohl die Winkel (in einer bestimmten Toleranz) als gleich anzusehen sind.

Meine derzeitige Lösung (in JAVA) sieht wie folgt aus:

  
// reduziere auf Vollkreis  
double tmp_o = o%(2.0*Math.PI);  
// solange o neg. erweitere (also max einmal *g);  
// tu dies nicht, wenn o "sehr" klein ist  
while (tmp_o<0 && (tmp_o+2.0*Math.PI)<6)  
  tmp_o += 2.0*Math.PI;  

an dieser Methode stört mich die 6 in der While-Schleifen-Bedingung, die ich einfach als Grenzwert festgelegt habe. Kann ich diese Reduktion auch anders gestalten? Für den Fall, das es wichtig ist; ich vergleich gemessene Richtungen mit Richtungen, die aus Koordinaten (atan2()) berechnet werden. Gemessen werden _immer_ pos. Winkel.

Mit freundlichem Gruß
Micha