Ich möchte ein Objekt (Punkt) auf einer Kreisbahn bewegen. Wie soll ich die X- und Y-Koordinaten ändern, um dies zu erreichen?
Ich möchte ein Objekt (Punkt) auf einer Kreisbahn bewegen. Wie soll ich die X- und Y-Koordinaten ändern, um dies zu erreichen?
Antworten:
Sie können das mit einfachen mathematischen Methoden tun:
X := originX + cos(angle)*radius;
Y := originY + sin(angle)*radius;
(originX, originY) ist der Mittelpunkt Ihres Kreises. Radius ist sein Radius. Das ist es.
Dies funktioniert, weil der Sinus und der Cosinus mathematisch mit dem Einheitskreis verknüpft sind .
Bildnachweis : LucasVB (Eigene Arbeit) [Public Domain], über Wikimedia Commons . (Verkleinert auf 70%.)
Sie können die von Krom markierte parametrische Gleichung verwenden. Um zu verstehen, warum wir diese Formel verwendet haben, müssen Sie verstehen, wie die Gleichung lautet. Diese Gleichung leitet sich aus der parametrischen Kreisgleichung ab .
Berücksichtigt man, wird der Kreis mit dem Mittelpunkt auf dem Ursprung (O) gezeichnet, wie im folgenden Diagramm gezeigt
Nehmen wir einen Punkt "p" am Umfang des Kreises mit einem Radius r.
Der von OP (Ursprung zu p) gemachte Winkel sei θ. Der Abstand von p von der x-Achse sei y. Der Abstand von p von der y-Achse sei x
Unter Verwendung der obigen Annahmen erhalten wir das Dreieck wie folgt:
Jetzt wissen wir, dass cos θ = Base / Hypotenuse und sin θ = Senkrecht / Hypotenuse ist
was uns cos θ = x / r und sin θ = y / r gibt
:: x = r * cos θ und y = r * sin θ
Befindet sich der Kreis jedoch nicht am Ursprung, sondern an (a, b), so kann man sagen, dass der Mittelpunkt des Kreises verschoben ist
a-Einheiten in der x-Achse
b-Einheiten in der y-Achse
Für einen solchen Kreis können wir die parametrische Gleichung entsprechend ändern, indem wir die Verschiebung auf der x- und y-Achse addieren, wodurch wir die folgenden Gleichungen erhalten:
x = a + (r * cos θ)
y = b + (r * sin θ)
Wobei a & b die x, y-Koordinaten des Mittelpunkts des Kreises sind.
Daher fanden wir x und y die Koordinaten des Punktes auf dem Umfang des Kreises mit dem Radius r
Es gibt einen anderen Trick, bei dem Sie die Formeln sin (x + a) und cos (x + a) verwenden und mit dem Sie sin (a) und cos (a) berechnen können - ein Winkel, um den Sie sich bewegen möchten von Ihrer aktuellen Position aus - nur einmal und multiplizieren und addieren Sie einfach bei jedem Schritt.
sin (x + a) = sin (x) · cos (a) + cos (x) · sin (a) iirc.
Das setzt natürlich eine konstante Winkelgeschwindigkeit voraus.
Beachten Sie jedoch die begrenzte arithmetische Genauigkeit. Ich habe in der Vergangenheit beobachtet, dass eine "kreisförmige" Bewegung so implementiert wurde, dass eine Spirale als Ergebnis einer gelegentlichen Abrundung gezogen wurde, die sich im Laufe der Zeit wiederholte. Möglicherweise muss die Position nach jeder Umdrehung auf (x0, y0) zurückgesetzt werden.