Hi,
da gibt es eine bessere und schnellere Lösung:
|
Quellcode
|
1
2
|
add(ath, view.hlookat, 360000);
mod(ath, 360);
|
Zuerst wird 360000 addiert um den Wert sicher ins Positive zu bringen (ein noch größerer Wert wäre auch möglich, es muss nur ein vielfaches von 360 sein, aber 360000 wären bereits 1000 vollständige 360° Drehungen nach links).
Dann einfach modulo 360, das ist de Rest der Division durch 360.
Der Wert liegt dann immer im Bereich 0 - 360.
Das sind nur zwei einfache Operation, das ist einfacher und schneller als 2 for-Schleifen.
Bzgl. 'stoppt Rotation' - immer wenn die <view> Einstellungen geändert werden, wird dies als manueller Eingriff gewertet und dies stoppt die Autorotation. Ich aber schon am überlegen dies zu ändern und nur wirkliche Benutzerinteraktionen als Unterberechungen zu werten.
Schöne Grüße,
Klaus