O pano de fundo é que estou tentando escrever um programa de computador para mostrar em que ângulos cada planeta seria visto transitando em frente ao sol por um observador fora do nosso sistema solar. Meu jogo final é calcular as porcentagens relativas do céu que poderiam ver qualquer grupo de planetas transitando juntos. Por exemplo, na direção em que a Terra é do sol em junho e dezembro, um observador alienígena que pode ver o trânsito da Terra também pode ver o trânsito de Vênus, mas do ângulo em que a Terra está em setembro ou março, nunca seria capaz de ver Trânsito de Vênus.
Eu escrevi um programa usando estatísticas básicas e órbitas circulares para testar a idéia, mas gostaria de torná-lo mais robusto usando órbitas elípticas reais e estou tendo problemas. Para órbitas circulares com o sol no centro, eu era capaz de apenas levar a inclinação dos tempos de órbita da Terra sin
à longitude de visualização em relação à longitude de ascensão.
double viewingLongitude = longitudeRadians - LongitudeOfAscent;
double planetAngle = Inclination * Math.Sin(viewingLongitude);
Por exemplo, a órbita da Terra tem uma inclinação de 1,57 graus e longitude de subida em 348,74 graus. A 348,74 graus e 168,74 graus a Terra terá uma inclinação real de 0 graus. A 78,74 graus e 158,74 graus a Terra terá uma inclinação real de 1,57 e -1,57 graus do plano.
Existe uma maneira fácil semelhante de calcular essa inclinação para a órbita elíptica da Terra ou terei que resolver as equações de Kepler?