Zitat:
raise Exception.CreateFmt( 'Wert %f ungültig. (0° <= Wert < 360°)', [ Value ] );
Stattdessen könnte man auch einfach den Wertebereich anpassen, denn als Kreisfunktion (unendlich wiederholend) gibt es auch Winkel kleiner 0° und größer/gleich 360°.
Für eine "genaue" Prüfung muß man also eigentlich nur die Werte in den gewünschen Bereich (0 <= w < 360) verschieben.
Delphi-Quellcode:
w := w mod 360;
if w < 0 then Inc(w, 360);
// oder
w := (w mod 360 + 360) mod 360;
// oder
w := w mod 360 + (Max(-Sign(w), 0) * 360);
// oder
w := w mod 360 - Sign(Min(w, 0)) * 360;
// oder
...