2026-01-01 : Éphéméridium version 0.2
Présentation
Après une longue phase de sommeil et d'interrogations, la nouvelle version d'Éphéméridium 0.2 a pris forme.
Il s'agit d'une évolution majeure :
| Ephemeridium 0.1 | Ephemeridium 0.2 | |
|---|---|---|
| Architecture | 32 bits | 64 bits |
| Compilateur | Visual Studio 2008 | Visual Studio 2026 |
| Windows mini | 10 | 11 |
| Langage | C++ 98 et assembleur en ligne | C++ 23 uniquement |
| Composants | MFC + ruban MFC + WebView 1 | C++ / WinUI 3 + Webview 2 |
| CodePage | 1252 uniquement | UTF-8 généralisé et UTF-16 côté interface |
Le code a été entièrement réécrit dans la version la plus moderne du langage C++ (norme C++ 23). Ce qui permet une syntaxe plus légère, un code plus lisible, plus moderne, plus fiable, plus performant.
L'interface a été complétement remaniée : elle n'utilise plus l'ancien ruban MFC, mais une barre de commandes moderne et efficace. Il n'y a plus de sous-vue de type « output » qui était inutile. Le composant principal de type WebView s'intègre mieux dans l'interface et ne dépend plus d'un fichier temporaire : tout se passe simplement en mémoire avec fluidité et performance. Et une amélioration majeure : l'application est conçue pour être directement « responsive design ». Enfin, l'utilisation intégrale de l'UTF-8 (conjointement avec de l'UTF-16 côté interface WinUI) permet de ne plus se limiter à un ensemble restreint de caractères.
Captures d'écran
Écran principal
L'application affiche des résultats avec le même genre de présentation que précédemment, mais d'une manière plus soignée et plus moderne.
Boîte « À propos »
Cette boîte de dialogue dans le style moderne montre sans difficulté l'affichage de caractères unicode non classiques.
Boîte « Choix d'un astre »
Cette boîte de dialogue permet de choisir un objet du système solaire. Elle a la particularité d'utiliser un contrôle de type « TreeView » fourni par WinUI. Tout en utilisant des icônes pour chaque choix possible. Mais la mise en œuvre a été plutôt ardue, notamment pour des problèmes inattendus de redimensionnement, de sélection, d'ascenseur, etc.
Boîte « Choix du type d'éphéméride »
Cette boîte de dialogue permet de choisir le type d'éphéméride. Elle est assez complexe du fait du nombre de combinaisons possibles et que certaines des combinaisons sont inadaptées ou même impossibles. Je prévois ultérieurement de gérer dynamiquement des combinaisons possibles.
Boîte « Choix du lieu »
Cette boîte de dialogue permet de choisir les coordonnées topographiques dans le cas d'une éphéméride topographique. On peut choisir des coordonnées précises à la centième de seconde d'arc. Je prévois d'améliorer cette interface afin d'avoir une représentation/un choix de la localisation sur un planisphère.
Boîte « Choix de l'époque »
Cette boîte de dialogue permet de choisir l'époque initiale des éphémérides à calculer. Il est possible de choisir l'époque avec une précision de la seconde pour 3 échelles de temps. Si nécessaire je permettrai de pouvoir descendre à une précision au niveau de la milliseconde, le logiciel pouvant supporter de base une précision au niveau de la microseconde et ce sur une durée de plus de 250 000 ans dans le passé ou dans l'avenir.
Boîte « Choix des itérations »
Cette boîte de dialogue permet de choisir les itérations de calcul à appliquer. Les pas d'itération possibles sont la seconde, la minute, l'heure, le jour, la semaine, l'année (en fait 365,2425 jours).
Boîte « Choix des valeurs calculées »
Cette boîte de dialogue permet de choisir ce qui est à calculer outre les simples coordonnées. Il y a de nombreux choix.
Boîte « Choix des paramètres avancés »
Cette boîte de dialogue permet de choisir quelques paramètres avancés comme le type du repère de référence céleste ou les paramètres de rotation de la Terre en utilisant différents modèles de précession, de nutation, etc. En général on conserve les modèles les plus récents.
Boîte « Choix des préférences générales »
Cette boîte de dialogue permet de choisir notamment les unités des valeurs calculées. Car on peut préférer par exemple des distances en km, ou en unités astronomiques. Il y a de très nombreux choix possibles.
Application « responsive design »
L'application est conçue dès le début en mode « responsive design », c'est-à-dire que son affichage s'adapte intelligemment selon l'espace disponible. Par exemple si l'espace devient restreint, certains éléments savent passer à la ligne automatiquement et les boutons de commande s'affichent sans leur texte pour que la barre de commande reste entièrement visible (les info-bulles restent bien-sûr disponibles).
Les menus de l'application
Les menus de l'application affichent aussi leur style moderne. D'autres menus seront à ajouter, par exemple pour enregistrer/restaurer une configuration ou imprimer les résultats.
Autres considérations
Bien qu'ayant été entièrement réécrite, l'application fournit toujours des résultats fiables. Ceci est possible parce que l'application disposait d'un nombre considérable de tests d'intégration. Le cœur du calcul d'éphémérides est une vaste bibliothèque nommée AE_Ephem et composée d'environ 20 000 lignes de code C++ (en mode C++ 23 exclusivement). C'est une sorte de petite librairie « SOFA » et c'est surtout le cœur de ce logiciel. D'autres briques viendront s'y ajouter. En effet, il manque notamment le support de l'ICRS ainsi que des éphémérides plus récentes et plus précises telles que VSOP 2013, INPOP 2021, DE 441.
Il reste aussi à donner un rôle à la barre d'état.
Un second mode de l'application est également prévu : la recherche de phénomènes tels que les apsides, les saisons, les phases lunaires, les passages aux nœuds, etc.
Et corriger quelques erreurs résiduelles : par exemple le calcul des constellations manque d'exactitude.
Enfin, basculer en C++ 26 dès que ce sera disponible, car si C++ a bien évolué positivement, il reste un nombre considérable de lacunes. Exemple : convertir une chaîne UTF-8 vers une chaîne hstring (UTF-16). C'est actuellement difficile à faire, on peut espérer mieux en C++ 26.











