Gravitationsgesetz, Ort zum Zeitpunkt t



  • Für bestimmte Zeitabschnitte die Bewegung zu berechnen ist ja einfach (die Anziehungskraft des eigenen Objekts auf das Zielobjekt soll vernachlässigt werden):

    Vector3 toTarget = (targetPos - ownPos);
    		float distance = toTarget.LengthSq() + 1;  // schneller hack gegen division durch 0
    		Vector3 acceleration = toTarget * (0.02f / distance);
    		movement += acceleration;
    		ownPos += movement;
    

    wobei 0.02f einfach ein konstanter Faktor ist, macht Newton ja auch so. 😉 Mir gelingt es aber nicht, das zeitabhängig zu formulieren, ich könnte mir vorstellen, dass man irgendwie mit a = s'' auf eine Differentialgleichung kommt, vielleicht könnt ihr mir ja nen kleinen Hint geben.



  • Nunja, kommt darauf an, was du mit "a = s" meinst.

    Allgemein gilt folgende Bewegungsgleichung:

    \vec F(\vec x) = m{\ddot \vec x} wobei letzteres die zweite Zeitableitung des Ortes, also die Beschleunigung ist. (ertse Zeitableitung ist die Geschwindigkeit)
    x ist dabei strenggenommen als dreidimensionaler Vektor aufzufassen, da es den Ort im dreidimensionalen Raum angibt. Kraft und Beschleunigung sind natürlich auch Vektoren, da beides eine Richtung hat. F ist im übrigen die Summe aller von außen wirkenden Kräfte auf den Massepunkt, der beschrieben wird.

    Bei Gravitationswirkung von zwei Körpern sieht die Gleichung folgendermaßen aus:

    \vec F\_g(\vec x) = G\frac{m\_1m\_2}{|\vec r|^3} \vec r = m\_1 {\ddot \vec x} dabei ist r=yx\vec r = \vec y - \vec x der Verbindungsvektor zwischen den beiden Körpern. x ist der Ortsvektor des einen, y des anderen Körpers. Andersrum gilt m\_2 {\ddot \vec y} = -G\frac{m\_1m_2}{|\vec r|^3} \vec r, da die Kraft die gleiche ist bis auf den umgekehrten Verbindungsvektor.
    Teilen der beiden Gleichungen durch die jeweilige Masse und darauffolgende Subtraktion {\ddot \vec r} = - G\frac{\vec r}{|\vec r|^3} \mu, wobei μ=m_1m_2m_1m_2\mu = \frac{m\_1m\_2}{m\_1-m\_2} die sog. reduzierte Masse ist und r weiterhin der Verbindungsvektor.
    Teilt man die oberen beiden Gleichungen durch m1 und m2, so erhält man M{\ddot \vec R} = \vec 0, wobei M=m_1+m_2M = m\_1+m\_2 die Gesamtmasse beider Körper und R=xm_2+ym_1\vec R = \frac{\vec x}{m\_2} + \frac{\vec y}{m\_1} der Schwerpunkt des Gesamtsystems.
    Man kann je nach Bedarf eines der beiden Gleichungspaare benutzen, um sie eindeutig zu lösen braucht man noch vier Randbedingungen (es sind zwei lineare Differentialgleichungen zweiten Grades, davon braucht jede zwei Randbedingungen):
    Zwei Anfangsgeschwindigkeiten {\dot \vec x}, {\dot \vec y}
    Zwei Anfangsorte x, y.
    (Man kann auch R und/oder r und/oder die entsprechenden Geschwindigkeiten nehmen, aus zweien lassen sich die jeweils beiden anderen errechnen)
    Damit ist es dann ziemlich einfach, die beiden Gleichungen zu lösen, vor allem wenn man die Schwerpunktform nimmt.



  • pumuckl schrieb:

    Nunja, kommt darauf an, was du mit "a = s" meinst.

    Naja, ich meinte a = s (2mal abgeleitet) 🙂
    Ich versuche, das heute mal umzusetzen, thx.


Anmelden zum Antworten