
Orbits : voyage à travers le système solaire
286/386/486
Sorti en 1991, le logiciel était distribué en France par
Nathan Logiciels
Cédic Nathan
IPT
(
avec les microordinateurs I
nformatique P
our T
ous)Thomson MO5
TO7
Il s'agissait en fait d'une francisation du logiciel américain
Orbits : Voyage Through the Solar System
WinterTech
Jil Saint-Martin
et Emmy Vadon
débutent l'enseignement de spécialité spécialité NSI
(
en Première au lycée N
umérique et S
ciences I
nformatiques)Louis Pasteur
d'Avignon
.Leurs enseignants exigeants leur ont déjà demandé de concevoir et rendre pour les congés de Toussaint un premier projet
Python
complet sur calculatrice NumWorks
.Grâce à
Jil
et Emmy
, voici donc dès maintenant la nouvelle référence à installer sur toutes les calculatrices NumWorks
: Solar :
! une brève navigation dans l'espace sur Python


Solar
est donc une banque de données sur le système solaire, comparable à PC Univers
Elle bénéficie toutefois d'une bien meilleure intuitivité et interactivité. Pas d'horrible menu de haut d'écran à dérouler et lire ici, tout se contrôle avec les touches fléchées du clavier, avec un retour visuel immédiat.
Flèches gauche et droite pour choisir son étoile ou planète alors mise en surbrillance, et flèches haut et bas pour en faire défiler les différentes propriétés.
Près de 30 ans après 
Solar
a également le gros avantage de bénéficier de données à jour, c'est-à-dire que Gil
et Emmy
se sont donné la peine de supprimer tout ce qui concernait Pluton
. 
Non plus sérieusement
aux âmes bien nées la valeur n'attend point le nombre des années
, toutes nos félicitations à Jil
et Emmy
qui ont su relever des défis ambitieux et développer de belles capacités et compétences. On peut retenir entre autres : 
- déjà de base des qualités artistiques et graphiques indéniables
- une belle maîtrise du codage des couleurs RVB, superbement exploitée ici dans le contexte des dégradés
- un beau travail de recherche sur le tracé de cercles dans le contexte de la géométrie et du théorème de Pythagore(aucune fonction en ce sens n'étant actuellement fournie par la bibliothèque de tracé par pixels, basé sur le travail dekandinskyde laNumWorks)Philippe Moutou, avec des fonctions soigneusement calibrées pour ne pas laisser de trous dus aux arrondis lors du remplissage d'un disque en dégradé
- et toute la logique algorithmique permettant d'afficher tout ça, notamment en terme de boucles
Mais peut-être n'as-tu pas de 
NumWorks
? 

Solar
, grâce à la bibliothèque polycalc
que nous avons créée dans le cadre de notre concours Python
de rentrée 2020
Le chef-d'œuvre de
Jil
et Emmy
est dès maintenant disponible sur TI-Nspire CX II
! 
Ce fut l'adaptation la plus facile, nous avons juste eu à effectuer les connexions à notre bibliothèque et ça marche tout seul.


La compatibilité
Casio Graph 90+E / fx-CG50
fut plus compliquée. Le gros défaut à ce jour de leur solution Python
est qu'elle ne fournit pas de fonction pour tester les appuis de touches clavier. La seule touche que l'on peut détecter c'est la touche AC/ON, en interceptant et détournant l'exception d'interruption qu'elle génère.
Nous avons donc ici dû adapter le fonctionnement ; il faut taper
AC/ONpour passer à la planète ou étoile suivante, et les différentes propriétés défilent automatiquement.

Mais bon, ce n'était rien ça encore... La compatibilité , et ici nous nous disposons que de
TI-83 Premium CE Edition Python
et TI-84 Plus CE-T Python Edition
fut hautement plus complexe. L'ennui étant que le script original est conçu pour exploiter une mémoire de tas Python
de 32K
16K
...Ce ne fut pas facile, mais heureusement le code de
Jil
et Emmy
était encore grandement optimisable. Données dupliquées, fonctions de tracé remplacées par les appels natifs lorsque disponibles, variables globales effacées une fois utilisées... Après plusieurs heures de casse-tête eurêka ça marche ! 
Nous faisons d'ailleurs profiter rétroactivement de nos adaptations précédentes de ce code optimisé.
Et pour les curieux, petite comparaison contextualisée des performances :
- -4s: avec un affichage enTI-Nspire CX IIdouble bufferinget nombre de fonctions de tracé natives
- -12s: pas deNumWorksdouble buffering, et les fonctions de tracé natives sont extrêmement réduites, juste de quoi remplir un rectangle ce qui ne nous aide pas ici, les cercles et disques sont donc dessinés dans le code pixel par pixel
- -1min49s: affichage enCasio Graph 90+E / fx-CG50double buffering, mais pas de fonctions de tracé natives en dehors de l'allumage de pixels isolés
- -2min36s: pas deTI-83 Premium CE Edition Python / TI-84 Plus CE-T Python Editiondouble buffering, riche bibliothèque de fonctions de tracé natives, mais la communication à chaque appel de fonction graphique entre le coprocesseurPython Atmelet le processeur principal historiqueeZ80s'occupant de l'écran fait office de goulot d'étranglement
Téléchargements
:- Solar(pourNumWorks- original)
- Solar(pourNumWorkset )
- Solar(pourTI-Nspire CX II)
- Solar
- Solar(pourCasio Graph 90+E / fx-CG50)
- Solar(pourTI-83 Premium CE Edition Python / TI-84 Plus CE-T Python Edition)
Lien
: