Heim >Backend-Entwicklung >C++ >Wie drehe ich einen 2D-Punkt um einen anderen Punkt?

Wie drehe ich einen 2D-Punkt um einen anderen Punkt?

Barbara Streisand
Barbara StreisandOriginal
2024-12-08 00:02:13232Durchsuche

How do I Rotate a 2D Point Around Another Point?

Einen Punkt um einen anderen Punkt drehen (2D)

Um die Punkte zu bestimmen, die eine Form für die Kollisionserkennung definieren, ist eine Drehung erforderlich die Punkte um einen Drehpunkt. In diesem Fall ist der Drehpunkt der Mittelpunkt der Form.

Um einen Punkt p um einen anderen Punkt (cx, cy) um einen Winkel im Bogenmaß zu drehen, gehen Sie folgendermaßen vor:

  1. Übersetzen Sie den Punkt zurück zum Ursprung, indem Sie (cx, cy):

    p.x -= cx;
    p.y -= cy;
  2. Drehen Sie den Punkt gegen den Uhrzeigersinn:

    float xnew = p.x * cos(angle) - p.y * sin(angle);
    float ynew = p.x * sin(angle) + p.y * cos(angle);
  3. Übersetzen Sie den Punkt zurück, indem Sie (cx, cy hinzufügen ):

    p.x = xnew + cx;
    p.y = ynew + cy;

Mit dieser Methode können Sie jeden Punkt um jeden anderen Punkt drehen und bestimmen Sie die Form eines Objekts zur Kollisionserkennung.

Das obige ist der detaillierte Inhalt vonWie drehe ich einen 2D-Punkt um einen anderen Punkt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn