J'essaie actuellement de simuler facilement certains systèmes stellaires (c'est-à-dire des étoiles centrales puis des planètes avec peut-être des satellites), afin de permettre plus tard un jeu de stratégie basé sur l'espace (donc avec des vaisseaux spatiaux se déplaçant). Tout cela devrait être basé sur le temps (donc l'état de chaque système diffère dans le temps)
Je suis assez en difficulté avec les mathématiques derrière ce sujet, comme par exemple:
- les mathématiques liées à l'ellipse,
- la création du chemin de la planète A vers B en ayant le temps à l'esprit (les positions respectives changeront avec le temps) ...
Connaissez-vous des ressources pour cela? Cela ne me dérangerait même pas d'acheter des livres à ce sujet ...
note de côté: comment afficher toutes ces choses n'est pas une question pour l'instant, je vais faire des plans simples pour cela (en gros, s'en tenir à la 2D et à une "vue de haut niveau" sans détails sur les vaisseaux spatiaux / planètes, juste des marqueurs)
la source
Réponses:
Je ne suis pas un cerveau mathématique, mais ma lecture SF et Google m'ont conduit à cette page sur la mécanique orbitale . Cela commence par des explications que je peux suivre et le suit par des équations que je ne peux pas. Le type de mouvement que je recherchais s'appelle une orbite de transfert Hohmann, qui utilise le moins de carburant.
la source
Il y a un autre problème auquel vous voudrez peut-être réfléchir aussi bien que la physique de la simulation d'un système stellaire.
La précision en virgule flottante sera probablement un problème en fonction du degré de "simulation". Quand on y pense, les distances réelles entre une planète par rapport à la distance d'un objet en orbite autour d'une de ces planètes sont énormes. Essayer de simuler à la fois une planète éloignée et un objet en orbite dans le même "environnement" se briserait probablement sous les limites de la précision en virgule flottante.
http://www.floatingorigin.com/mirror/oneil_01.htm
la source
Comme Jason le mentionne ci-dessus, jetez un œil à cette page Web - elle va assez profondément dans la mécanique orbitale ...
http://www.braeunig.us/space/orbmech.htm
Je me demande si vous pourriez être en mesure d'élaborer un système de navigation basé sur des règles simples. Il suffit de "lancer" le véhicule sur un vecteur, puis à chaque passage de votre boucle d'événement, de lui faire regarder sa trajectoire actuelle par rapport à la destination, et d'appliquer une correction.
Lorsque cela devient difficile, c'est là que vous devez prendre en compte ce que vous pourriez appeler les motivations du vaisseau spatial. A-t-il une alimentation en carburant limitée? Est-il préférable de s'y rendre plus rapidement ou d'utiliser moins de carburant? La vitesse à laquelle vous vous approchez de la cible est-elle importante? C'est-à-dire, peut-il simplement voler à grande vitesse ou doit-il ralentir pour entrer en orbite?
la source
Avez-vous même besoin de résoudre ce problème? Les orbites de transfert de Hohmann sont LENTES - 1/2 de la période orbitale du corps extérieur et elles nécessitent également un alignement correct des planètes pour fonctionner.
Voulez-vous vraiment limiter les joueurs à de tels mouvements? Et si vous faites cela, vous utilisez évidemment une sorte de lecteur de saut pour accéder aux autres systèmes stellaires - pourquoi ne pouvez-vous pas utiliser cela dans un système?
Si vous avez un système de poussée continue de puissance non triviale, vous n'avez pas besoin de faire de tels calculs orbitaux. Au lieu:
1) Calculez le changement de vitesse nécessaire entre les corps. Il s'agit à la fois de la vitesse orbitale et de l'énergie nécessaire pour se déplacer vers la nouvelle orbite.
2) Calculez la distance entre A et B à leurs positions actuelles.
3) Ajustez ceci pour la brûlure nécessaire dans la partie # 1. Si vous allez vers l'extérieur, prévoyez une brûlure supplémentaire au début pour le changement de vitesse, si vous allez dans la brûlure supplémentaire, c'est à la fin. Soustrayez cette distance de la distance entre les planètes, ajoutez le temps nécessaire au temps total.
4) Prenez la distance restante, divisez-la en deux et calculez combien de temps cela prendra à votre fusée. Doublez le résultat.
5) Ajoutez les temps impliqués, figurez où la planète cible sera après que la brûlure soit terminée. Si elle est trop déplacée, utilisez le nouvel emplacement de la planète comme cible, refaites les calculs. Cela convergera rapidement.
Oui, ce n'est pas conforme aux spécifications de la NASA, mais il est suffisamment proche pour l'utilisation du jeu.
la source
Interpolation linéaire de recherche. Il vous permet de mettre à jour une position du point A au point B le long d'une ligne droite en utilisant une fonction du temps.
Ce lien pourrait vous aider.
la source