
Nous te présentions dans dans un
article précédent notre propre bibliothèque
PolyPyNet résolvant ce problème.
Non non, il ne s'agit absolument pas d'une 4
ème bibliothèque graphique supplémentaire à apprendre.

C'est en fait une bibliothèque de compatibilité, ultra simple à utiliser pour toi, que tu sois utilisateur ou développeur :
- Utilisateur, il te suffit de charger les fichiers de PPN sur ta calculatrice et c'est tout, plus besoin de t'en occuper.

- Développeur, tu as juste à remplacer le nom de module constructeur dans tes lignes d'importation par ppn et c'est tout, rien d'autre à changer dans ton script, tu continues à coder avec les fonctions de ta bibliothèque graphique préférée, que ce soit casioplot, kandinsky ou ti_graphics.

Tu es de plus libre d'intégrer, modifier et redistribuer la bibliothèque avec tes scripts. 
PPN te permet même d'exécuter tes scripts graphiques
Python pour calculatrices sur ton ordinateur avec
tkinter !


Nous poursuivons aujourd'hui l'exploration et l'amélioration de cette bibliothèque, avec un script
Python développé par
Kikoodx pour
Casio Graph 90+E, dans le cadre du
concours de démo graphiques Python chez
Planète Casio.
Il s'agit ici d'un script affichant une image codée en dur, ici une photo de clé USB
Casio.
Notons au passage l'affichage de texte décoré, en blanc avec contour noir.

L'image fait 384×192 pixels et
Kikoodx l'inclut dans le code dans une version indexée, faisant appel à une palette de 256 couleurs optimisée pour cette image.
384×192=73728 à raison déjà d'1 octet par pixel, on peut de suite renoncer à faire tourner le script sur
NumWorks : nous n'avons ni assez de stockage
(32K) ni assez de tas / heap pour créer un tel objet mémoire à l'exécution
(32K).
Exclue également la
TI-83 Premium CE Edition Python. Son tas / heap
Python est encore pire avec moins de 17.5K. Quant au stockage, précisons que malgré les apparences il ne suffirait même pas à cause de deux contraintes :
- si nous avons certes 3M de stockage en Flash, les scripts Python que l'on souhaite pouvoir exécuter doivent être mis en mémoire RAM - les ~150K peuvent certes être suffisants si la mémoire est assez vide...
- mais ça ne marchera pas pour autant, car à l'exécution les scripts doivent être transférés dans la mémoire de stockage dédiée du coprocesseur Python, et qui elle fait moins que ça...

Bref, il suffit de remplacer comme indiqué la seule ligne d'importation
from casioplot import *
par
from ppn import *
, et ça marche directement sur
TI-Nspire Ndless sans rien d'autre à modifier, aussi bien pour l'image que pour le texte décoré !




Précisons que d'origine, le
Micropython pour
TI-Nspire Ndless ne dispose pas de fonction pour dessiner du texte à l'écran. Et c'est justement l'objet du dernier ajout majeur à
PolyPyNet.

Les 3 polices
Casio Graph 90+E (petite, moyenne et large) ont été reproduites pixel par pixel, intégrées pour les scripts exécutés sur
TI-Nspire Ndless et
tkinter, et visiblement avec succès vu que l'on obtient bien le même effet visuel de contour sur le texte.


D'ailleurs tu noteras bien au passage que c'est la police
(large) Casio que tu retrouves ici sur ta
TI-Nspire au lieu de sa propre police, ainsi que sur
tkinter.

Niveau temps d'exécution avant affichage de la photo, nous avons :
- 2.43s : Graph 90+E
- 4.90s : TI-Nspire CX CR3-
- 5.28s : TI-Nspire CX CR4+