Nachfolgenden Punkt mit Grad und Geschwindigkeit errechnen.



  • Hi, Jungs.

    Wie sich die meisten wahrscheinlich schon gedacht haben, geht es dabei um die bewegung eines Pong balles.

    In jedem fall hat man ja die position des balles, die ich aus flexibilitätsgründen als Float speichere (0.xx bewegungen möglich). also

    float fXPos = 100.0;
    float fYPos = 100.0;
    

    Die einfachere Variante für die Bewegung wäre sind ja nun zwei float variablen für die X und Y bewegung. Die nachfolgende position lässt sich hier ja sehr simpel mit aufaddieren errechnen.

    float fXMove = 1.0;
    float fYMove = 0.0;
    
    // Bewegung
    fXPos += fXMove; // X Position wird auf 101.0 geändert
    fYPos += fYMove; // Y Position bleibt auf 100.0
    

    Dieses System würde ich jetzt allerdings gerne auf Grad und geschwindigkeit umstellen also:

    float fDegrees = 90.0;
    float fSpeed = 1.0;
    
    // Bewegung
    // X soll 101.0 werden und Y 100.0, bloß wie?
    

    In Mathe war ich immer ne absolute Pfeife und das dürfte ja irgendwas mit diesen Sinus Cosinus spaß zu tun haben. Da hab ich absolut keine Ahnung von.

    Würde mich wirklich freuen, wenn mir jemand weiterhelfen könnte.

    Vielen dank im voraus
    George



  • Dieser Thread wurde von Moderator/in davie aus dem Forum C++ in das Forum Mathematik verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • hi,
    das ist eigentlich ganz einfach:
    (zur kollisionsabfrage würde ich die wegdifferenz aber zwischenspeichern)

    #include <math.h>
    
    ...
    
    fXPos += cos( fDegree ) * fSpeed;
    fYPos += sin( fDegree ) * fSpeed;
    


  • In Mathe war ich immer ne absolute Pfeife und das dürfte ja irgendwas mit diesen Sinus Cosinus spaß zu tun haben. Da hab ich absolut keine Ahnung von.

    In Physik auch??

    Dieses System würde ich jetzt allerdings gerne auf Grad und geschwindigkeit umstellen also:
    

    Für Geschwindigkeit brauchst du zur Positionsänderung auch noch ne Zeit. Ich denke du meinst Grad und Entfernung 🙄



  • @electron
    Die Entfernung ist das was ich als Geschwindigkeit bezeichnet habe, da die Zeit durch die einzelnen Frames ja bereits gerastert ist. Also habe ich eine Geschwindigkeits angabe von Pixel/Frame. Physik ist zwar auch nicht wirklich meine stärke, aber ich würde trotzdem behaupten, das man das so bezeichnen darf 😉



  • hehe, ich würde aber gut aufpassen, dein programm wird dann von der bidlwiederholfrequenz und von der rechnergeschwindigkeit abhängig.
    möglichkeit: einfach speed durch die zeit zwischen dem aktuellen und letzten frame teilen... (vorher in double oder so konvertieren) 🙂



  • Sagen sie mal, wollt ihr mich veräppeln? 😉 Natürlich ist eine Frame Bremse drin (besser gesagt, das ganze läuft über einen Timer). Bei jedem Frame findet eine Bewegung statt. Deswegen reichen mir der Winkel und die Entfernung/Geschwidigkeit (wie auch immer;)) vollkommen aus, damit das ganze so läuft wie es soll und das auch später auf einem 30Ghzter...



  • okok is in ordnung 😃



  • Du rechnest kartesische Koordinaten in Polarkoordinaten um.

    http://www.geoinformatik.uni-rostock.de/einzel.asp?ID=1357

    Wenn du dann später die LAENGE intern als Geschwindigkeit repräsentierst ist das deine Sache.


Anmelden zum Antworten