Calcul des phases lunaires pour la date du jour

Programmation d'applications complexes
Avatar de l’utilisateur
PhM
Messages : 207
Inscription : dim. 08/déc./2019 10:50

Re: Calcul des phases lunaires pour la date du jour

Message 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.
Avatar de l’utilisateur
PhM
Messages : 207
Inscription : dim. 08/déc./2019 10:50

Re: Calcul des phases lunaires pour la date du jour

Message 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
Avatar de l’utilisateur
Micoute
Messages : 2592
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Calcul des phases lunaires pour la date du jour

Message 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.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
PhM
Messages : 207
Inscription : dim. 08/déc./2019 10:50

Re: Calcul des phases lunaires pour la date du jour

Message 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:
Avatar de l’utilisateur
SPH
Messages : 5019
Inscription : mer. 09/nov./2005 9:53

Re: Calcul des phases lunaires pour la date du jour

Message par SPH »

Ha ouai, ça donne bien !

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

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Répondre