Heim >Backend-Entwicklung >C++ >Wie drehe ich einen 2D-Punkt um einen anderen Punkt?
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:
Übersetzen Sie den Punkt zurück zum Ursprung, indem Sie (cx, cy):
p.x -= cx; p.y -= cy;
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);
Ü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!