Atualmente, estou procurando como simular facilmente alguns sistemas estelares (ou seja, algumas estrelas centrais e depois alguns planetas com talvez satélites), a fim de permitir mais tarde algum jogo de estratégia espacial (por isso, naves espaciais se movendo). Tudo isso deve se basear ao longo do tempo (para que o estado de cada sistema seja diferente ao longo do tempo)
Estou bastante debatido com a matemática por trás deste tópico, como por exemplo:
- matemática relacionada à elipse,
- criando o caminho do planeta A para B tendo em mente (as respectivas posições mudarão com o tempo) ...
Você conhece algum recurso para isso? Eu não me importaria de comprar livros sobre isso ...
nota lateral: como exibir todas essas coisas não é uma questão neste momento, farei planos simples para isso (basicamente aderindo ao 2D e uma "visão de alto nível" sem detalhes de naves espaciais / planetas, apenas marcadores)
fonte
Respostas:
Eu não sou um cérebro de matemática, mas minha leitura do SF e o Google me levam a esta página sobre mecânica orbital . Começa com explicações que posso seguir e segue com equações que não posso. O tipo de movimento que eu procurava é chamado de órbita de transferência Hohmann, que usa menos combustível.
fonte
Há outra questão que você pode pensar além da física de simular um sistema estelar.
A precisão do ponto flutuante provavelmente será um problema, dependendo da quantidade de uma "simulação". Quando você pensa sobre isso, as distâncias reais entre um planeta em relação à distância de um objeto orbitando em torno de um desses planetas são enormes. Tentar simular um planeta distante e um objeto em órbita no mesmo "ambiente" provavelmente quebraria sob as limitações da precisão do ponto flutuante.
http://www.floatingorigin.com/mirror/oneil_01.htm
fonte
Como Jason menciona acima, dê uma olhada nesta página da Web - ela se aprofundou bastante na mecânica orbital ...
http://www.braeunig.us/space/orbmech.htm
Gostaria de saber se você pode trabalhar com um sistema simples de regras para navegação. Simplesmente "lance" o veículo em algum vetor e, em cada passagem do seu loop de eventos, observe a trajetória atual em relação ao destino e aplique uma correção.
Quando fica complicado, é onde você deve levar em conta o que você poderia chamar de motivações da nave espacial. Possui um suprimento de combustível finito? É melhor chegar mais rápido ou usar menos combustível? A velocidade com que você se aproxima do alvo é importante? Ou seja, ele pode simplesmente voar em alta velocidade ou precisa desacelerar para entrar em órbita?
fonte
Você ainda precisa resolver isso? As órbitas de transferência de Hohmann são LENTA - 1/2 do período orbital do corpo externo e também requerem um alinhamento adequado dos planetas para funcionar.
Deseja realmente limitar os jogadores a esses movimentos? E se você está fazendo isso, obviamente está usando algum tipo de unidade de salto para chegar aos outros sistemas estelares - por que você não pode usá-lo em um sistema?
Se você tem algum tipo de sistema de impulso contínuo de potência não trivial, não precisa fazer cálculos orbitais tão sofisticados. Em vez de:
1) Calcule a mudança de velocidade necessária entre os corpos. Essa é a velocidade orbital e a energia necessária para passar para a nova órbita.
2) Calcule a distância entre A e B em suas posições atuais.
3) Ajuste isso para a gravação necessária na parte 1. Se você estiver indo para fora, imagine uma queimadura extra no início para a mudança de velocidade, se você estiver indo para a queima extra no final. Subtraia essa distância da distância entre os planetas, adicione o tempo necessário ao tempo total.
4) Pegue a distância restante, divida ao meio e calcule quanto tempo o foguete levará para fazer isso. Dobrar o resultado.
5) Adicione os tempos envolvidos, figura onde o planeta alvo estará depois que a queima terminar. Se for movido demais, use o novo local do planeta como alvo, refaça os cálculos. Isso convergirá rapidamente.
Sim, isso não depende das especificações da NASA, mas é suficientemente próximo para o uso do jogo.
fonte
Interpolação linear de pesquisa. Permite atualizar uma posição do ponto A a B ao longo de uma linha reta, usando uma função do tempo.
Este link pode ajudar.
fonte