Calcul, en VBA, du mouvement apparent du soleil

Voir le sujet précédent Voir le sujet suivant Aller en bas

Calcul, en VBA, du mouvement apparent du soleil

Message par gihem le Jeu 5 Déc - 13:13

Bonjour le forum,
Existe-t-il une fonction ou un raisonnement qui permettrait, en VBA (PowerPoint),

  • de calculer le mouvement apparent du soleil à la date du jour ?


  • de positionner le soleil sur cette courbe?

Le but final est de représenter le soleil  sur son orbite au moment de l’affichage de la dia.
J’utilise la procédure écrite par Mr Ravet pour calculer les heures de lever et coucher du soleil.
D’avance merci pour votre aide
GiHem

gihem
Membre Participant
Membre Participant

Nombre de messages : 5
Date d'inscription : 03/11/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul, en VBA, du mouvement apparent du soleil

Message par Olivier le Jeu 12 Déc - 14:48

Bonjour,
Voici L'algo H soleil // Azimut

Code:
  If Mois < 3 Then Mois = Mois + 12: ANNEE = ANNEE - 1
    Dp = Fix(365.25 * ANNEE) + Fix(30.6001 * (Mois + 1)) + JOUR + 1720996.5
    If ANNEE + (Mois / 100) + (JOUR / 10000) > 1582.10145 Then
        Dp = Dp - (Fix(ANNEE / 100)) + Fix((Fix(ANNEE / 100)) / 4)
    End If
    'Détermination du jour de la mesure en fraction de siècle
    t0p = (Dp - 2415020) / 36525
    gp = CDate(Time) - (delta / 24)
    TP = t0p + (gp / 36525)
    gp = gp * 24
    ' Temps sidéral à Greenwich à 0h00 TU
    S0p = 6.6460656 + 2400.051262 * t0p
    '  Temps sidéral à Greenwich à L'heure de la mesure
    sp = S0p + (gp * 1.0027389)
    sp = sp - 24 * Int(sp / 24) ' "
    '   Calcul du moyen mouvement du soleil
    mp = 358.47583 + 35999.04975 * TP
    Lsp = 279.69668 + 36000.76892 * TP + (1.919 - 0.004789 * TP) _
         * Sin(mp * RPD) + 0.020094 * Sin(2 * mp * RPD) - 0.00569
    '  Calcul de L'inclinaison de LpO'équateur.
    np = 23.452294 - 0.01301 * TP
    '   Calcul de L'ascension droite du Soleil
    Ap = Atn(Cos(np * RPD) * Tan(Lsp * RPD)) / RPD
    If Cos(Lsp * RPD) < 0 Then Ap = Ap + 180
    Bidp = Sin(np * RPD) * Sin(Lsp * RPD)
    ' Calcul de la déclinaison du Soleil
    Dep = Atn(Bidp / Sqr((-Bidp) * Bidp + 1)) / RPD
    GHp = sp * 15 - Ap
    'Calcul du GHA ( Angle horaire à Greenwich)
    GHp = GHp - 360 * Int(GHp / 360)
    '    Calcul de L'angle horaire local du soleil
    LHap = GHp - LPo
    If LHap < 0 Then LHap = LHap + 360
    If LHap > 360 Then LHap = LHap - 360
    Xp = Sin(Dep * RPD) * Sin(FPo * RPD) + Cos(Dep * RPD) * Cos(FPo * RPD) * Cos(LHap * RPD)
    Hep = Atn(Xp / Sqr(-Xp * Xp + 1)) / RPD
    Xp = (Sin(Dep * RPD) - Sin(FPo * RPD) * Sin(Hep * RPD)) / (Cos(FPo * RPD) * Cos(Hep * RPD))
    AzP = (Atn(-Xp / Sqr(-Xp * Xp + 1)) + 2 * Atn(1)) / RPD
    If LHap < 180 Then AzP = 360 - AzP

Avec Jour Mois, Annee en grégorien.
Delta est le décalage horaire avec TU (France = +1 ou +2 en été)
RPD est le rapport Pi/180 :
(Public Const RPD = 0.017453292)
HeP en degrés c'est la hauteur
AzP est l'azimut, par rapport au nord vrai.

Suffit de faire une boucle au dessus de
Code:
t0p = (Dp - 2415020) / 36525
qui incrémente DP en fonction de la précision désirée (Une unité = 1 jour, donc au moins 5 décimales)
 flic

Olivier
Admin
Admin

Nombre de messages : 1124
Date d'inscription : 16/02/2006

Voir le profil de l'utilisateur http://olravet.fr

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum