Je développe un jeu lié à la simulation spatiale et j'ai du mal à implémenter le mouvement des étoiles binaires, comme ceci:
Les deux étoiles tournent autour de leur centroïde et leurs trajectoires sont des ellipses.
Je sais essentiellement comment déterminer la vitesse angulaire à n'importe quelle position, mais pas la vitesse angulaire au fil du temps. Donc, pour un angle donné, je peux très facilement calculer la position des étoiles (cf. http://en.wikipedia.org/wiki/Orbit_equation ).
Je voudrais obtenir la position des étoiles au fil du temps. Les équations paramétriques des œuvres d'ellipse , mais ne donne pas la vitesse correcte:
{ X(t) = a×cos(t) ; Y(t) = b×sin(t) }
.
Est-ce possible et comment le faire?
mathematics
physics
Artefact2
la source
la source
Réponses:
En suivant quelques liens de la page Wikipédia à laquelle vous faites référence, vous accédez à Position en fonction du temps .
la source
Vous semblez avoir eu suffisamment de données pour produire l'animation pratique ci-dessus. Votre simulation peut nécessiter plus de précision que celle fournie par ma solution:
Pour chaque image de votre animation ci-dessus, enregistrez les positions en pixels des centres de chaque étoile. Entrez ces valeurs dans deux tableaux dans votre programme. Pour un temps donné t, trouvez les quatre entrées correspondantes consécutives dans chaque tableau et effectuez un filtre bicubique sur celles-ci pour produire la position de chaque étoile.
la source
J'ai trouvé que l'intégration numérique était le moyen le plus simple. La loi du carré inverse (F = GM / r ^ 2) fonctionne plutôt bien. Et Runge Kutta commander quatre souvent appelé RK4 est facile à implémenter et fonctionne bien. Vous commencez par écrire un routinier qui prend une dérivée temporelle de premier ordre, par exemple pour un seul objet dans l'espace 2D, vous avez les coordonnées X et Y, et les vitesses X et Y. La sortie est la dérivée temporelle, la dérivée temporelle de la position est simplement la vitesse, donc la moitié n'est que la copie de valeurs, puis l'accélération n'est que l'attraction gravitationnelle. Ensuite, vous suivez la prescription Runge Kutta. L'erreur d'un seul pas de temps est proportionnelle au pas de temps à la cinquième puissance. Vous ajustez le pas de temps pour rendre le résultat suffisamment précis. Un avantage sur l'intégration numérique est que si vous voulez jouer avec le système pour le rendre plus intéressant,
la source