Implementierung der Projektilbewegung

8

Ich habe das Internet nach Quellen gewertet und eine Menge nützlicher Informationen gefunden, aber es sind Matheseiten, die versuchen, mir zu sagen, wie man den Winkel löst, in dem ein Objekt sein muss, um den Ort zu erreichen. Ich versuche jedoch, eine Simulation auszuführen, und habe keine festen Gleichungen gefunden, die zur Simulation einer parabolischen Kurve implementiert werden können. Können mir solche mit etwas Physikwissen dabei helfen?

    
DMan 20.03.2010, 00:24
quelle

4 Antworten

7

Während Bennys Antwort gut ist, besonders in ihrer Allgemeinheit, können Sie Ihr Problem genau lösen, anstatt endliche Integrationsschritte zu verwenden. Die gewünschte Gleichung lautet:

%Vor%

Hier finden Sie eine Erklärung, woher das kommt.

Hier ist s die Verschiebung, u ist die Anfangsgeschwindigkeit, a ist die Beschleunigung und t ist die Zeit. Diese Gleichung ist nur 1-dimensional, kann aber leicht für Ihr Problem verwendet werden. Sie müssen lediglich die Bewegung Ihres Projektils in zwei Komponenten aufteilen: eine parallel zu Ihrer Beschleunigung und eine Senkrechte. Wenn wir Sx die Verschiebung in der x-Richtung und Sy die Verschiebung in der y-Richtung beschreiben, erhalten wir:

%Vor%

Jetzt in Ihrem speziellen Beispiel ist Ax 0, da die einzige Beschleunigung auf der Schwerkraft beruht, die in der y-Richtung ist, dh Ay = -g. Das Minus kommt von der Tatsache, dass die Schwerkraft in die entgegengesetzte Richtung zur ursprünglichen Bewegung des Objekts wirkt. Ux und Uy stammen aus einfacher Trigonometrie:

%Vor%

Wenn Sie das alles zusammensetzen, erhalten Sie zwei Gleichungen, die beschreiben, wo sich das Projektil zu einem Zeitpunkt t nach dem Start befindet, relativ zu seiner Startposition:

%Vor%     
pheelicks 20.03.2010, 01:48
quelle
6

Verwenden Sie die Gleichungen nicht für die Position. Verwenden Sie stattdessen die Gleichungen für die Geschwindigkeit. Berechnen Sie die neue Geschwindigkeit jeder Schleife Ihrer Simulation aus der alten Geschwindigkeit des Objekts und wenden Sie sie auf Ihr Objekt an. Sie müssen die verstrichene Zeit zwischen den einzelnen Schleifen der Simulation kennen. Natürlich funktioniert dies für vertikale oder horizontale Geschwindigkeit.

%Vor%

Wenden Sie dann an:

%Vor%

Sie können eine einfache Beschleunigung von -9.8 m/s verwenden (vergessen Sie nicht, dass "down" auf dem Bildschirm wirklich eine Erhöhung der vertikalen Position ist! Sie können also einfach +9.8 verwenden). Oder Sie können sich etwas einfallen lassen und variable Beschleunigung hinzufügen (zum Beispiel aus Wind, wenn Sie auch die horizontale Bewegung des Objekts modellieren).

Grundsätzlich basiert die Beschleunigung, die Sie anwenden, auf der Summe der auf das Objekt wirkenden Kräfte (Schwerkraft, Reibung, Strahlantrieb usw.).

%Vor%

Das Folgende kann Ihnen dabei helfen.

Wenn Sie eine auf das Objekt angewendete Kraft modellieren, brechen Sie zuerst die Kraft in ihre horizontalen und vertikalen Komponenten auf:

%Vor%

Berechnen Sie dann die Beschleunigung aus der Kraft mit:

%Vor%

(Ich gebe dieses Wissen meiner ersten Programmiererfahrung zu: GORILLA.BAS =))

    
Benny Jobigan 20.03.2010 00:30
quelle
3

Einige Definitionen:

%Vor%

Einige Gleichungen:

%Vor%     
Tim Goodman 20.03.2010 00:47
quelle
1

Heres eine nette Bibliothek, die Ihnen vielleicht helfen könnte

Ссылка

Um ehrlich zu sein, habe ich nicht allzu viel darüber nachgedacht, ich habe es in Scott Whitlocks Code-Projektartikel gefunden.

Ссылка

    
bic 20.03.2010 00:56
quelle

Tags und Links