Ich habe Winkel, Länge der Linie und Startpunkt gegeben und ich möchte Zielpunkt berechnen, um mein Objekt hier zu bewegen. Ich folge diesen Beitrag und einige andere:Zielpunkt berechnen, Anfangspunkt, Winkel und Länge GEHEN ZUR GEGENWÄRTSRICHTUNG
cocos2d calculate destination point given start point, angle and distance
Problem: Für den ersten und vierten Quadranten, es mir richtigen Winkel ist zu geben. Aber für den 2. und 3. Quadranten geht es genau entgegengesetzt. Ich konnte das Problem nicht herausfinden. Dieses Bild kann es deutlich machen:
Grüne Pfeile sind meine beabsichtigte Richtung zeigen und rote Pfeile zeigen, wo es eigentlich gehen.
Mein Code so weit:
float m = (targetPosition.y - initialPosition.y)/(targetPosition.x - initialPosition.x);
angle = atan (m) * 180/PI;
int lineLength = 200;
float radiansAngle = CC_DEGREES_TO_RADIANS(angle);
Vec2 endPoint;
endPoint.y = sinf(radiansAngle) * lineLength + initialPosition.y;
endPoint.x = cosf(radiansAngle) * lineLength + initialPosition.x;
ATA2 ist auch nicht working.I wie dieser Schwimmer hat Xdiff = targetPosition.x - initialPosition.x; float yDiff = Zielposition.y - Zielposition.y; Rückgabe atan2 (yDiff, xDiff) * 180/PI; – Itkrux
@Nargis 'atan2' funktioniert. Überprüfen Sie Ihre eigenen Fehler und überlegen Sie, welchen Bereich atan2 in Ihrer Sprache zurückgibt (0..2Pi oder -Pi..Pi) – MBo