Astronomie

Description

Plusieurs fonctions dans un module astronomie.bas. certaines ont déjà été traitées mais à ma connaissance pas l'ensemble.
Fonctions de conversions radian<->degré décimaux<->degré minutes secondes
Fonctions jours juliens <-> jour du calendrier
Fonction Modulo qui généralise mod à de grands nombres
Fonctions IsBissextile, IsGregorien dont l'intitulé est limpide
Fonctions JourSemaine avec une natrée en jour juline ou en jour du calendrier
Fonction NuméroDuJour, NuméroDeLaSemaine qui renvoie le numéro du jour et de la semaine dans l'année
Fonction Paques qui renvoie la date de Pâques pour une année donnée (à partir de 325)
Fonction DateDelaLune renvoie la phase de la le nombre de jours écoulés depuis la dernière nouvelle lune
Fonction PhaseLune renvoie la phase de la lune et le nombre de jours depuis le début de cette phase
Fonction NombreLunaisons renvoie le nombre de lunaisons depuis le 1er janvier 1900
Fonctions DateNouvelleLune, DatePremierQuartier, DatePleineLune, DateDernierQuartier renvoie le jour julien de la phase correspondante d'une lunaison donnée
Fonction Saison renvoie la date du début des saisons pour une année donnée
Fonctions d'éléments orbitaux : LongitudeApparenteSoleil, LongitudeMoyenne, DemiGrandAxe, Excentricite, Inclinaison, LongitudeNoeudAscendant, AnomalieMoyenne, AnomalieExcentrique, AnomalieVraie, latitude, LongitudeEcliptique, Calcul_Longitude, Calcul_Longitude_Lune

Source / Exemple :


Tout est dans le ZIP garanti sans virus. ce n'est pas un exe mais juste un .bas
Pour vous donner une idée voici le code d'une des fonctions

'cette fonction renvoie la longitude de la planète en radian.
Function Calcul_Longitude(Planete As Long, JJ As Double) As Double
    'Pour calculer la longitude (l) par rapport à l'écliptique, il faut connaître
    'i, l'inclinaison
    'u, la latitude de la planète
    'Omega, la longitude du noeud ascendant
    'tan(l - Omega)=cos(i)*tan(u)   formule 21.4 page 78
    
    'Pour cela on utilise les fonctions correspondantes qui dépendent de la planète et du
    'temps écoulé de puis le 1er janvier 1900 à minuit (T) ainsi que de T^2 et T^3
    
    Dim T As Double
    T = (JJ - 2415020#) / 36525
    
    Dim T_2 As Double
    T_2 = T * T
    
    Dim T_3 As Double
    T_3 = T * T_2
    
    If Planete = Lune Then
        Calcul_Longitude = Calcul_Longitude_Lune(T, T_2, T_3)
        Exit Function
    End If
    
    'L'inclinaison
    'i=a0+a1*T+a2*T_2+a3*T_3 tableau 20a, page 73
    Dim i As Double
    i = Inclinaison(Planete, T, T_2, T_3)
    
    'u, L'argument (?) de la latitude de la planète dépend de
    'LM, la longitude moyenne
    'AV, l'anomalie vraie
    'AM, l'anomalie moyenne
    'Omega, la longitude du noeud ascendant
    'u=LM+AV-AM-Omega   formule 21.3 page 78
    
    'LM, la longitude moyenne
    'LM=a0+a1*T+a2*T_2+a3*T_3 tableau 20a, page 73 (dans le tableau il s'agit de L)
    Dim LM As Double
    LM = LongitudeMoyenne(Planete, T, T_2, T_3)
    
    'AV, l'anomalie vraie dépend de l'excentricité e et de l'anomalie excentrique AE
    'tan(AV/2)=Racine((1+e)/(1-e))*tan(AE/2)    formule 21.1 page 78
    
    'e, l'excentricité
    'e=a0+a1*T+a2*T_2+a3*T_3 tableau 20a, page 73
    Dim e As Double
    e = Excentricite(Planete, T, T_2, T_3)
    
    'AE, l'anomalie excentrique dépend de
    'e, l'excentricité
    'AM, l'anomalie moyenne
    'Elle se trouve en résolvant l'équation de Kepler
    '2ème méthode modifiée pour obtenir des radians, page 69
    'AE1=AE0+(AM+e*sin(AE0)-AE0)/(1-e*cos(AE0))
    
    'AM, l'anomalie moyenne dépend de
    'AM=a0+a1*T+a2*T_2+a3*T_3 page 77 (55 pour la terre)
    
    'Omega, la longitude du noeud ascendant
    'Omega=a0+a1*T+a2*T_2+a3*T_3 tableau 20a, page 73 (dans le tableau il s'agit de grand oméga)
    Dim Omega As Double
    Omega = LongitudeNoeudAscendant(Planete, T, T_2, T_3)
    
    Dim AM As Double
    AM = AnomalieMoyenne(Planete, T, T_2, T_3)
    
    Dim AE As Double
    AE = AnomalieExcentrique(e, AM)
    
    Dim AV As Double
    AV = AnomalieVraie(e, AE)
    
    Dim u As Double
    u = latitude(LM, AV, AM, Omega)
    
    Dim L As Double
    L = LongitudeEcliptique(i, u, Omega)
    
    Calcul_Longitude = L

End Function

Conclusion :


Ce module n'est pas un programme en lui-même mais peut servir à créer :
un calendrier perpétuel
une simulation du mouvement des planètes

et plein d'autres choses.
Attention pour Pluton, les calculs sont faux. Dés que je trouve les vraies valeurs, je modifie.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.