Neue Koordinaten mit Hilfe von X, Y, Winkel und zurückgelegte Strecke



  • Hallo Community,
    ich stehe gerade vor einem Problem, das hier bestimmt schon ein paar Mal gestellt wurde jedoch finde ich da keinen Ansatz, was genau mein Fehler ist.

    Ich habe einen Helden mit X und Y Koordinaten, einen Winkel, wo er hin möchte und eine Anzahl an Schritten die er geht. Das ganze wird aus der Vogelperspektive betrachtet.

    Jetzt bräuchte ich die neuen X und Y Koordinaten.

    Mein Ansatz für 100 Schritte in C++:
    HeroX = HeroX + (100 * std::cos(Angle));
    HeroY = HeroY + (100 * std::sin(Angle));

    Jedoch wandert der Held manchmal in die entgegen gesetzte Richtung oder leicht mehr rechts oder links. Was mache ich falsch?



  • Gibt du den 'Angle' auch im Bogenmaß (0 - 2*PI) an?



  • Ich habe es nun mit dieser Formel versucht ...
    double MyNewAngle = ((2 * std::_Pi) / 360) * Angle;
    ... umgewandelt jedoch bleibt Ergebnis das gleiche.



  • Ich habe es nun mit dieser Formel versucht ...
    double MyNewAngle = ((2 * std::_Pi) / 360) * Angle;
    ... umgewandelt jedoch bleibt Ergebnis das gleiche.



  • Wie gibst du denn den Winkel an? Dieser ist bei der Formel immer ein absoluter Wert, d.h. nicht relativ zur letzten Winkelangabe.



  • Hey, ich habe es hinbekommen dank dir. Ich musste noch das hier noch zusätzlich ändern.
    HeroX = HeroX - (100 * std::cos(MyNewAngel));

    Aber was genau bedeutet absoluter Wert? Bei mir startet er mit einen Winkel von -90° und zählt hoch, bis der Spieler eine Taste drückt, danach wandert der Held in diese Richtung und fängt wider von vorne bei -90° an. Für mich ist, dass ein absoluter Wert da er immer von vorne anfängt, aber sicher bin ich mir nicht.


Anmelden zum Antworten