Page 11 sur 11

Re: Calcul des phases lunaires pour la date du jour

Publié : ven. 05/déc./2025 13:21
par PhM
Micoute a écrit : ven. 05/déc./2025 10:10 C'est du très bon travail, mais j'ai repéré une erreur de procédure.

Voici la modification que j'ai faite, car le programme disait "Gibbeuse croissante", alors que la pleine lune était hier.

Code : Tout sélectionner

Procedure.s PhaseLune(age.f, illumination.f)
  ; illumination en % (0..100), age en jours (0..29.53)
  Protected quartierTol.f = 2.0   ; tolérance autour de 50%
  Protected ageTolQ.f   = 1.0    ; tolérance autour des quartiers
  Protected NouvelleTol.f   = 1.0    ; tolérance nouvelle lune
  Protected seuilPleine.f  = 99.5   ; seuil pleine lune

  If illumination <= NouvelleTol
    ProcedureReturn "Nouvelle lune"

  ; Premier quartier (autour de 7.4 j et ~50%)
  ElseIf Abs(illumination - 50.0) <= quartierTol And Abs(age - 7.4) <= ageTolQ
    ProcedureReturn "Premier quartier"

  ; Dernier quartier (autour de 22.2 j et ~50%)
  ElseIf Abs(illumination - 50.0) <= quartierTol And Abs(age - 22.2) <= ageTolQ
    ProcedureReturn "Dernier quartier"

  ; Pleine lune (illumination très haute, optionnellement proche de 14.8 j)
  ElseIf illumination >= seuilPleine
    ProcedureReturn "Pleine lune"

  ; Croissant / Gibbeuse (croissante)
  ElseIf illumination > NouvelleTol And illumination < 50.0 And age < 7.4
    ProcedureReturn "Premier croissant"
  ElseIf illumination > 50.0 And illumination < seuilPleine And age < 14.8
    ProcedureReturn "Gibbeuse croissante"

  ; Gibbeuse / Croissant (décroissante)
  ElseIf illumination > 50.0 And illumination < seuilPleine And age >= 14.8 And age < 22.2
    ProcedureReturn "Gibbeuse décroissante"
  ElseIf illumination > NouvelleTol And illumination < 50.0 And age >= 22.2
    ProcedureReturn "Dernier croissant"

  Else
    ; Secours: basé sur l'âge en temps long (catégories larges)
    If age < 7.4
      ProcedureReturn "Premier croissant"
    ElseIf age < 9.0
      ProcedureReturn "Premier quartier"
    ElseIf age < 14.8
      ProcedureReturn "Gibbeuse croissante"
    ElseIf age < 16.5
      ProcedureReturn "Pleine lune"
    ElseIf age < 22.2
      ProcedureReturn "Gibbeuse décroissante"
    ElseIf age < 23.8
      ProcedureReturn "Dernier quartier"
    Else
      ProcedureReturn "Dernier croissant"
    EndIf
  EndIf
EndProcedure
Bonjour et merci pour ta vigilance.

Il se trouve que, moi aussi, hier, je me suis aperçu de cela mais, je n'ai corrigé que le code de l'Arduino pas le programme PB.

Re: Calcul des phases lunaires pour la date du jour

Publié : ven. 05/déc./2025 13:46
par PhM
Voilà, c'est au mur et cela tient bien.

Voici l'ultime version de la documentation (1.0) : https://uploadnow.io/f/qCHNpqv

Pour ma part, je mets donc fin à ce long post qui semble avoir intéressé du monde.

Merci à tous pour votre soutien et vos remarques constructives.

A la prochaine...

Philippe

Image

Image

Re: Calcul des phases lunaires pour la date du jour

Publié : ven. 05/déc./2025 13:49
par Micoute
C'est gentil de ta part, car c'est vrai que ça peut être mal vu de modifier le code des autres, mais je l'ai fait par bienveillance et comme ça tout le monde peut profiter de la collaboration collective, car je pense que quand on poste un programme, il ne nous appartient plus vraiment.

Re: Calcul des phases lunaires pour la date du jour

Publié : ven. 05/déc./2025 13:57
par PhM
Micoute a écrit : ven. 05/déc./2025 13:49 C'est gentil de ta part, car c'est vrai que ça peut être mal vu de modifier le code des autres, mais je l'ai fait par bienveillance et comme ça tout le monde peut profiter de la collaboration collective, car je pense que quand on poste un programme, il ne nous appartient plus vraiment.
Vraiment aucun problème avec ça ! Comme tu l'as dit, une fois publier, c'est comme les feuilles mortes, cela s'envole...

Mais, le savoir, lui reste à mon bord :lol: :idea:

Re: Calcul des phases lunaires pour la date du jour

Publié : ven. 05/déc./2025 14:50
par SPH
Ha ouai, ça donne bien !

Merci d'avoir exposé ce projet que j'ai suivi de bout en bout. :D