2017-04-15 4 views
0

Ich verwende derzeit atan2, um mein Objekt (Rectangle) während der Bewegung entlang der Kurve zum normalen zeigen. Aber aus irgendeinem Grund würde das Objekt immer diagonal nach rechts zeigen, auch wenn es über die Mitte der Kurve hinausgeht.Verwenden von Atan2 in C++

Das ist die Formel, die ich verwendet:

vecdiff = Normals[counterNorm] - player.getPosition(); 
float angle = atan2(vecdiff.y, vecdiff.x)*180/PI + 90; 
player.setRotation(angle); 

Nicht wirklich sicher, wie die diagonal nach links Objektfläche zu machen, nachdem die Mitte der Kurve geführt going

+0

Ich stimme zu schließen, wie diese Fragen fehlt genügend Details (MCVE). – Walter

Antwort

0

Ich hoffe, dass ich Ihre Frage verstanden und die Probleme richtig. Von dem, was ich sehen kann, müssen Sie Ihren Winkel zwischen -180 und +180 halten:

while (angle < -180){ 
    angle += 360; 
}  
while (angle > 180){ 
    angle -= 360; 
}