Bremswegberechnung - Ich blicks nich o_O
Übersicht

![]() |
FetzeBetreff: Bremswegberechnung - Ich blicks nich o_O |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich ahbe hier ein mathematisches Problem. Ich habe hier einige Raumschiffe mit Trägheit. Ich arbeite mit einem Winkel und einer Sollgeschwindigkeit, die in eine X- und Y-Bewegung umgesetzt werden. Jedes Frame werden X und YSpeed neu berechnet, wobei der Sollspeed beachtet wird. Das Raumschiff beschleunigt sozusagen permanent in irgnedeine Richtung, um den SollSpeed im (Soll)Winkel zu erreichen. Dabei spielt auch die Masse des Raumschiffs und seine Beschleunigungsenergie, also sozusagen Antriebskraft eine Rolle. Ich nenne das im folgenden "SpeedAcc". Vereinfach wird folgende Formel verwendet:
XSpeed = XSpeed + ((Sin(Schiffwinkel) * SollSpeed) - XSPeed) * (SpeedAcc / Masse) YSpeed = YSpeed + ((-Cos(Schiffwinkel) * SollSpeed) - YSPeed) * (SpeedAcc / Masse) Das funktioniert prima. Gebremst wird, indem der Sollspeed gleich 0 gesetzt wird. So. Jetzt würde ich gerne den Bremsweg eines Raumschiffes berechnen, habe aber leider keine Ahnung, wie ich das mache. ich bin mit mehreren Ansätzen bereits in Sackgassen gelandet, habe aber bisher mehr oder weniger nur herumprobiert. So viel glaube ich aber schon mit Sicherheit zu wissen: Ich setze also den SollSpeed = 0: XSpeed = XSpeed + ((Sin(Schiffwinkel) * 0) - XSPeed) * (SpeedAcc / Masse) YSpeed = YSpeed + ((-Cos(Schiffwinkel) * 0) - YSPeed) * (SpeedAcc / Masse) Dadurch fällt eine Klammer weg: XSpeed = XSpeed + (- XSPeed) * (SpeedAcc / Masse) YSpeed = YSpeed + (- YSPeed) * (SpeedAcc / Masse) Indem man einträgt, dass die aktuelle Geschwindigkeit dem Maximum des Schiffs entspricht, erhält man den Bremsweg von 100 auf 0. Ich brauche auch nur eine Gleichung, da ich den allgemeinen Bremsweg in eienr allgemeinen Pixelstrecke haben möchte und nicht den absoluten X-Y-Bremsweg eines bestimmten Winkels: ??? = MaxSpeed - MaxSpeed * (SpeedAcc / Masse) Was habe ich denn jetzt beim Fragezeichen? Ist das der Bremsweg als pixelstrecke? Wohl kaum, oder? Jedenfalls verliefen die Tests mit dieser Formel nicht gerade erfolgreich... oder hab ich vielleicht den komplett falschen Ansatz? Wäre froh, wenn mir jemand auf die Sprünge helfen könnte ^^ Edit: habe gerade einen Denkfehler entdeckt. Die letzte Zeile muss so lauten: Speed = Speed - Speed * (SpeedAcc / Masse) Ich setze Speed anfangs auf MaxSpeed und dann kann ich mit dieser Formel ausrechnen, wie der Speed nach X Frames aussieht.... das ist leider das genaue Gegenteil von dem, was ich will. Ich hätte nämlich gerne die Frameanzahl. Wie bekomme ich denn das raus? Eine Schleife? Das wäre zu langsam, um es bei ein paartausend Objekten jedes Frame in echtzeit zu berechnen.... gibts da keine schnellere Lösung? |
||
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mit Framezahl wird schwierig, weil du eine Rechnung hast bei der fast alle Sachen bis unendlich gehen:
Zitat: Speed = 100
SA = 1 M = 1 Ergebnis deiner Formel nach 1 Frame: 0 Zitat: Speed = 100
SA = 0.5 M = 1 Ergebnis deiner Formel nach 1 Frame: 50 Ergebnis deiner Formel nach 2 Frame: 25 Ergebnis deiner Formel nach 3 Frame: 12,5 u.s.w. D.h. wenn du eine SpeedAcc<Masse hast kommt das Raumschiff nie zum Stillstand. Aber ich überleg weiter ... |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
Fetze |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja, es muss ja nicht genau 0 sein, es reicht ja völlig aus, wenns auf 1/60 genau ist. Ich muss mich übrigens korrigieren. Ich hab am Ende meines Posts geschrieben, ich würde die Anzahl der Frames suchen. Stimmt nicht, ich suche die Länge des Bremsweges in Pixel. Ich habe eifnach angenommen, dass ich dafür die Anzahl der benötigten Frames brauche. | ||
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Probiers mal damit:
Speed / (SpeedAcc / Masse) Hab ich nach Try&Error und etwas mathematischem Gefühl herausbekommen. BlitzBasic: [AUSKLAPPEN] Speed# = 500 |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
Fetze |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wow, danke, genau das, was ich brauche.... so einfach oO | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group