Periodendauer eines Orbits berechnen [SOLVED].

  • Moinsen,


    ich arbeite gerade an einer Orbit prediction für ein Spiel. Das Problem ist, dass ich nicht den selben Orbit mehrmals berechnen will und dafür brauche ich die Perioden dauer des Orbits.
    Da mehrere Himmelkörper Einfluss auf den Satelliten haben kann nicht genau der niedrigste Punkt(Periapsis) und der höchste Punkt (Apoapsis) gleichzeitig ermittelt werden, also weis ich nur den niedrigsten oder den höchsten Punkt bei der Berechnung.


    Also bekannt sind:
    -Masse des Planeten
    -Gravitationskonstante
    -Niedrigste oder höchste Distanz zum Planeten
    -Geschwindigkeit (Vektor und Variable)


    Wäre nett wenn ihr mir vielleicht die Formel für die Periodendauer aus diesen Informationen herleiten könntet...



    Hier der Code :P


    float gM = GravityManager.PlanetStrength(currentPlanet.myTransform);
    float z = Mathf.Pow(v, 2) / gM;
    float y = (-z * x) / (z - 2 / x);
    float a = (x + y) / 2;
    maxTime = 2 * Mathf.PI * Mathf.Sqrt(Mathf.Pow(a, 3) / gM) + startTime;




    Vielen Dank!

  • Ich habe dazu zwei Fragen: a) In welcher Sprache hast du den Code geschrieben? und b) wie steht es mit den Keplerschen Gesetzen?
    Liebe Grüße von einem Informatiker und Hobbyastronomen.

    Wenn eine Idee am Anfang nicht absurd klingt, dann gibt es keine Hoffnung für sie.
    ( Albert Einstein )

  • a) Ich entwickel PackageDelivered in der UnityEngine mit C# als Scriptsprache.
    b) Monde und Planeten "fliegen" auf Bahnen, werden also nicht mit der Physik simuliert. Auf den Spieler hat jeder Himmelskörper, der groß genug ist, Einfluss.


    PS.
    Das Spiel ist 2 Dimensional. Daher kann ich nicht die richtige Gravitationskonstante benutzen, und die Masse der Planeten wird durch die Kreisoberfläche bestimmt. Auch ist die Dichte der Atmosphäre überall konstant.


    Momentan gebe ich PackageDelivered noch den letzten Schliff sonst bin ich damit zufrieden und GLÜCKLICH, dass es endlich nach 2 Monaten vorbei ist :P . Ich werde Morgen mal ne kleine Alpha/Beta Starten ^^ .

    .eJwNyEESwiAMAMC_8ACgIYD07NFPMDRSRiodEr04_l33uB_1ml2tahc5eTVma1zG3DTLmLmSrmPUTvlsrMs4TBbJZT_oKWzAA16CTQuCgyVF8P9Ch86HFGMM4Cxac6M3db7m-dC13dX3B23aI6c.A5FEOC8_gHdM1FbB9VAhEu4heLg.eJwNyEESwiAMAMC_8ACgIYD07NFPMDRSRiodEr04_l33uB_1ml2tahc5eTVma1zG3DTLmLmSrmPUTvlsrMs4TBbJZT_oKWzAA16CTQuCgyVF8P9Ch86HFGMM4Cxac6M3db7m-dC13dX3B23aI6c.A5FEOC8_gHdM1FbB9VAhEu4heLg