Hi Columba,
Anhand der Richtung habe ich "way" ausgerechnet - 0.02 für Bewegung im Uhrzeigersinn, -0.02 gegen den Uhrzeigersinn.
Da hab ich erstmal gestutzt. Aber ja, das Koordinatensystem ist ja auch andersherum: positive x rechts, positive y UNTEN.
Nun versuche ich, anhand der Koordinaten des Mittelpunkts (assoziatives Array "m") und des Punktes auf der Außenlinie (assoziatives Array "posNeu") den neuen Punkt zu berechnen:
var bogen1=Math.acos( (posNeu["x"]-m["x"]) /radius);
Liefert dir Werte im Intervall [0, π]. Du willst aber einen vollen Umlauf, also [0, 2π[ oder ]-π, π]. Nehmen wir der Einfachheit wegen das zweite.
Das Vorzeichen des Winkels bogen1 stimmt dann mit dem Vorzeichen von posNeu["y"]-m["y"] überein. Also einfach
if (posNeu["y"] < m["y"]) bogen1 = -bogen1;
Das musst du nur einmal tun. In die Schleife kommt
bogen1 += way;
posNeu["x"]=m["x"]+ radius * Math.cos(bogen1);
posNeu["y"]=m["y"]+ radius * Math.sin(bogen1);
Gruß,
Gunnar
“I got my finger on the trigger / But I don’t know who to trust” (Bruce Springsteen, Devils and Dust)