Hallo,
Ich brauche Hilfe beim finden einer Formel. Es geht darum, dass ich prüfen will ob bei den Einstellungen zu meiner Flugbahn Simulation die Werte zu groß werden, um dann enstsprechend die Geschwindigkeit zu regulieren.
Hier mal der relevante Quelltext (gekürtzt und ohne proceduren)
Delphi-Quellcode:
var
v, w: Extended // v Geschwindigkeit; w Abschusswinkel
ro : Extended // Dichte der Luft
r : Extended // Radius der Kugel
cw : Extended // Wiederstandsbeiwert
m : Extended // Masse
ax : Extended // Bremsbeschleunigung X-Richtung
vx : Extended // Geschwindigkeit X-Richtung
vor_vx: Integer
k := Pi * ro * r * r * cw / (2*m); // Wird am anfang berechnet
vx := v * cos (w);
ax := k * vx * vx; // Bei jedem "Tick" vom Timer wird ab hier gerechnet
if vx > 0 then vor_vx := -1 else vor_vx := 1; //Bremsbeschleunigung entgegen Wirken lassen
vx := vx + vor_vx * ax * 0.05;
Um das Problem bei einer kleinen Rechnung zu verdeutlichen:
Nehmen wir an:
k := 5;
vx := 10;
dan würde ax = 5 * 10² = 500
vx = 10 - 1 * 500 * 0,05 = - 15
Schon beim nächsten durchlauf würde sich vx weiter vergrößern bis es irgendwan den Extended Bereich übersteigt und das Programm abstürzen lässt.
Deswegen such ich jetzt eine Formel die ausrechnet ob die Werte noch gültig sind oder ob sie zu groß sind prüft und gegebenenfalls v reguliert.
Inzwischen hab ich schon einige Formeln getestet doch auch nach dem regulieren gab es noch ein Error. Ich hoffe ihr könnt mir weiterhelfen.
Danke schonmal!
MFG
Maximus