Le code source

Licence libre open source.

Ce logiciel est distribué gratuitement, code source compris.
Son usage doit rester culturel et libre.
Il ne peut aucunement être incorporé dans un projet commercial

J’adhère à la philosophie de Richard Stallman et du projet GNU / Linux
Les utilisateurs peuvent librement soutenir le Simulateur Astronomique sur :
IBAN : BE22 0004 1032 4447
BIC : BPOTBEB1
Sans aucune obligation.

La programmation reste l’activité fondamentale de l’informatique.
Une passion qui me tient à cœur depuis l’├óge de douze ans.
Que, plus récemment, le web permet de partager.

Programmer est, non seulement, une activité intellectuelle passionnante.
Mais, en plus, elle aboutit à un résultat durable.
Un logiciel partageable avec le monde entier.
Contrairement aux jeux d’échecs ou de dames, dont il ne reste rien, une fois les pions rangés.

C’est cette passion pour la programmation que je partage, en révélant les sources.

Ce code permet d’inclure l’applet dans votre site web :

<APPLET code="astro.Simulateur.class" name="Simulateur" codebase="http://www.sogedima.be/java/" width="1000" height="700">
 <B>Votre navigateur n’est pas compatible Java.</B>
</APPLET>

Aussi facilement qu’une image.

Les passionnés de programmation reconnaîtront, dans le schéma qui suit, une implémentation du Modèle Vue Contrôleur.

Le Simulateur

C’est le contrôleur.
Il définit l’applet, l’interface (menus, boutons, champ date)
Il gère la Lune, le planétarium et le saros.

Les éphémérides

Les éphémérides sont le cerveau du simulateur.

C’est le modèle.

Elles reçoivent une date, sur base de laquelle elles calculent les paramètres orbitaux des astres et objets affichés dans les graphes.

La classe Graphes devenait un peu lourde, elle contenait à la fois :

J’ai donc éjecté tous les calculs astronomiques dans une classe aveugle: les éphémérides.
Cette classe effectue tous les calculs. Elle hérite du GregorianCalendar.

L’interface contenue dans Simulateur.java les positionne et la déplace sur la ligne du temps.
Outre le GregorianCalendar, elles calculent aussi la phase de la Lune, du noeud, de Mercure, Vénus, la Terre, Mars, la précession des équinoxes, …

Elles n’effectuent par contre aucune action interactive ni ne dessinent à aucun schéma à l’écran.

La classe éphémérides fournit à la classe Graphes toutes les variables dont elle a besoin pour s’afficher.

Le test des éphémérides

Puisque les éphémérides sont le cerveau du simulateur, il faut s’assurer de l’exactitude des calculs qui y sont programmés par des tests en JUnit 4.

Programmer ne suffit pas, il faut aussi tester.
Les tests positionnent les éphémérides à des dates-clef (transit de Vénus, de Mercure, oppositions martiennes, éclipses, …) consultées dans Wikipédia,
Pour s’assurer que l’astre testé soit bien à la bonne position.

Les graphes

Cette classe présente les différents graphes selon les données calculées par le planétarium.
Elle le consulte pour savoir comment dessiner les graphes:

Les cycles

En cours d’élaboration.
En astronomie, tout est cyclique. Les cycles modélisent l’année tropique, la lunaison tropique, l’élévation au nœud et sa conséquence sur les lunistices.

Plus d’info lorsque les cycles seront programmés …

Le Saros

Le saros est le cycle des éclipses. Il recommence toutes les 223 lunaisons.
La classe Saros calcule les paramètres des 223 pleines lunes du saros dont on lui confie le numéro.

Chaque saros reçoit un n° depuis le début du saros 136 pris comme point d’origine.

Angle

Cette classe permet d’ajouter et de soustraire des angles à l’infini, tout en restant dans un intervalle 0 .. 2PI
Elle gère également les conversions Radians / Degrés.
Les degrés sont arrondis à l’unité. Ils ne servent qu’aux affichages.

Les calculs se font toujours en radians.
Les radians ne sont jamais affichés à l’utilisateur.

La file des graphes

Le simulateur peut afficher quatre graphes simultanément, mais est prévu pour en gérer beaucoup plus.
Chaque graphe est identifié par une lettre:

Lorsque l’utilisateur demande un graphe, celui-ci est affiché en haut à gauche.
Concrètement, la file est une suite de quatre lettres.
Chaque fois que l’utilisateur demande un graphe au menu déroulant, il ajoute une lettre à la file:

Chaîne initiale Lettre ajoutée Chaîne finale
marc p pmar
marc a amrc

Les autres lettres reculent vers la droite.
La lettre de droite est perdue.

La file des graphes veille donc à ce que le même graphe ne soit jamais affiché deux fois.

L’astre

Une classe pour trier les astres par ordre d’éloignement de la Terre dans une ArrayList.
Le résultat est affiché dans le graphe des saisons, lorsque maximisé et dé-zoomé entre 30 et 60 %

Le JColorButton

Une classe pour s’amuser !

Le bouton change de couleur lorsqu’on le survole ou qu’on le clique.

En Bash

Le Bash est le langage de Linux
  1. Téléchargez le fichier proposé par le lien de la case de gauche.
  2. Positionnez-vous dans le répertoire de téléchargement : cd /home/monNom/Documents/…
  3. Rendez-le exécutable : chmod +x simul.sh
  4. Exécutez-le en console, en tapant son nom : ./simul.sh

Il vous donnera l’angle de phase de la Lune en degrés entiers, et son expression française.
Fonctionne sous Linux et dans la console Mac. Pas sous Windows, ni au prompt MS-DOS.

Multi-linguisme

Le simulateur existe en plusieurs langues.
Si vous êtes natif d’une de ces langues, ou la maîtrisez convenablement, vous pouvez vous procurer le fichier d’expressions ci-dessous et le renvoyer corrigé sur christian(point)mascart(arobase)sogedima(point)be.
Vous pouvez aussi proposer une traduction dans une autre langue.
Merci !

Simulateur : Classe Graphes :

Le code source ne contient aucune expression. Celles-ci sont externalisées dans des Resource Bundle que le simulateur charge selon la langue de l’utilisateur.
Ces fichiers, à l’extension .properties, sont de simples fichiers textes.
Pour les visionner sous Windows, donnez-leur l’extension .TXT
Ils fonctionnent selon le principe clef = valeur
Il ne faut jamais modifier la clef, ni en effacer une ligne. Seule la valeur à droite du signe = doit être traduite.

Autres ressources

Ces quelques images viennent illustrer les graphes.
Elles sont chargées au démarrage de l’applet.

Rédigé en Java, avec Eclipse, sous Linux Ubuntu.

Eclipse permet notamment de rédiger automatiquement la documentation complète des objets.