Kurze überrüfung von Rotationsbeschränkungs-Funktion
-
Hi!
Ich möchte eine Funktion schreiben die mir den Rotations-winkel eines Hexagons im Intervall 0° bis 360° beschränkt:
public function restrictRotationYWithin360Degrees() : void { if(rotationY % 360 == 0) rotationY=0; while(rotationY < 0) rotationY+=360; while(rotationY > 360) rotationY-=360; }
Wollte nur mal nachfragen ob ich das richtig durchdacht habe und wollte auch wissen ob man das besser lösen kann, denn für Winkel >>> 360 und Winkel <<< 0 könnte die Funktion länger dauern.
Danke!
MfG Dudeldu
-
warum gibst du nicht einfach das Ergebnis des modulo zurück?
-
geht das für negative rotationen, hab mal den windowsrechner benutzt der liefert falsche ergebnisse.
-
wolfram alpha liefert das richtige, werds einfach mal testen.
-
otze schrieb:
warum gibst du nicht einfach das Ergebnis des modulo zurück?
Ich bin mir nicht sicher ob mod garantiert, dass man in [0, 359] liegt oder vielleicht doch nur in [-359,359]. Irgendwie kann man beides vernünftig begründen. Im letzteren Fall müsste man ggf. noch einmal 360 draufaddieren. Das ist aber auf alle Fälle besser als das in einer Schleife zu machen.
-
Alles klar, danke.
Hab es jetzt so implementiert:public function restrictRotationYWithin360Degrees() : void { rotationY = rotationY % 360; if(rotationY<0) rotationY+=360; }
Da in Actionscript 3.0 der mod-Operator auch negative Werte liefern kann.