π
<-
Chat plein-écran
[^]

Animation Radar Python pour Casio/NumWorks/TI via PPN

Animation Radar Python pour Casio/NumWorks/TI via PPN

Message non lude critor » 10 Mai 2020, 10:38

Chaque constructeur de calculatrices a choisi de fabriquer sa propre bibliothèque permettant de contrôler directement les pixels de l'écran.
  • kandinsky sur NumWorks
  • casioplot sur Casio Graph 90/35+E II
  • ti_graphics sur TI-83 Premium CE Edition Python

C'est à dire que quand tu choisis de développer un script Python pour l'une de ces 3 bibliothèques, il sera alors incompatible avec tous les autres modèles. :'(
A moins de t'embêter à publier une édition différente de ton script pour chaque modèle existant ou à venir...

A vous lire vous êtes nombreux à déplorer cette situation sur notre site ainsi que sur les réseaux sociaux, aussi bien lycéens qu'étudiants ou enseignants.

Nous le regrettons également, nous aurions préféré que les constructeurs adoptent au choix :
  • un standard
  • ou alors des spécifications compatibles avec la première bibliothèque sortie sur calculatrice (kandinsky)
  • ou sinon se mettent d'accord sur des spécifications communes à l'avenir

Mais voici aujourd'hui une solution que nous t'avons concoctée, PPN, pour PolyPyNet (abrégé du français PolyPythonnettes), une bibliothèque pour les unifier toutes ! :D

Non non, il ne s'agit absolument pas d'une bibliothèque graphique supplémentaire. :p

C'est en fait une bibliothèque de compatibilité. C'est 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. :bj:
  • 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. :bj:
PPN te permettra même d'exécuter tes scripts graphique Python pour calculatrices sur ton ordinateur avec tkinter ! :bj:

Enfin pour t'offrir un maximum de liberté, tu peux aussi bien distribuer la bibliothèque PPN avec tes propres scripts, qu'inviter tes utilisateurs à aller la récupérer séparément. :)

Nous allons t'illustrer cela avec un exemple de suite. Voici une animation de radar codée en Python par Dark Storm pour Casio Graph 90+E.

Codé à l'occasion du concours de démo graphiques en Python par Planète Casio.

Un script a priori assez conséquent de près de 5K.

12509Et bien il suffit de remplacer comme indiqué les lignes d'importation from casioplot import ... par from ppn import ..., et ça marche direct sur tous les autres modèles couleur NumWorks, TI-83 Premium CE Edition Python et TI-Nspire Ndless ! :bj:


Certes les définitions d'écran sont différentes et tout ne peut pas être adapté automatiquement. Mais si tu codes pour la bibliothèque PPN tu pourras récupérer automatiquement les dimensions de l'écran de la plateforme exécutant ton script en appelant après importation les variables ppn_w et ppn_h, et en tenir compte.

Mais à ce détail près, c'est quand même impressionnant d'avoir un script aussi conséquent qui tourne sur toutes les machines après s'être seulement donné la peine de changer une simple ligne d'importation ! :bj:



Parlons un petit peu performances. Précisons que les scripts utilisant PPN ne permettent pas de réaliser de classement pertinent. En effet, un même appel graphique n'est en interne pas exécuté de la même façon selon le modèle utilisé :
  • redirection directe vers la fonction graphique constructeur si le script est exécuté sur la plateforme pour laquelle il a été initialement développé
  • passer à travers une ou plusieurs fonctions de compatibilité si le script est exécuté sur une autre plateforme que celle pour laquelle il a été initialement développé
C'est-à-dire qu'ici la Casio Graph 90+E est privilégiée.

Mais ce n'est pas une raison pour ne pas te dire ce que ça donne, pour 1 tour de radar complet :
  1. 3.2754s: NumWorks N0110 (firmware tiers Omega)
  2. 3.4296s : NumWorks N0100
  3. 3.5284s : NumWorks N0110
  4. 3.6286s : NumWorks N0100 (firmware tiers Omega)
  5. 6.499s : Graph 90+E
  6. 7.412s : TI-Nspire CX CR3-
  7. 9.703s : TI-Nspire CX CR4+
  8. 41min08.685s : TI-83 Premium CE Edition Python (lire plus bas pour des détails)

On retrouve le problème déjà évoqué pour la TI-83 Premium CE Edition Python, à savoir que le Python tourne sur un coprocesseur, et que toute instruction graphique doit donc transiter par le processeur principal avant d'atteindre l'écran, ce qui génère une latence à chaque appel graphique. :'(
Comme ici l'animation du radar travaille avec des boucles de set_pixel, le code équivalent est sans surprise catastrophique sur TI-83 Premium CE Edition Python.

Texas Instruments fournit heureusement une solution exclusive avec des fonctions de tracé de divers primitives et formes géométriques (lignes, polygones...), qui pourraient avantageusement être utilisées ici, permettant de regrouper en un seul appel graphique des transformations de plusieurs et même plein de pixels. :)

Mais voilà, cela nécessiterait à la différence une conversion manuelle du code, faite plus bas sur ce topic pour comparer, mais qui s'éloigne du thème de la compatibilité automatique sans effort que nous souhaitions traiter ici.

Téléchargements :

Crédits images :
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41470
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Animation Radar Python pour Casio/NumWorks/TI via PPN

Message non lude cent20 » 10 Mai 2020, 11:15

critor a écrit: Parlons un petit peu performances. (...) Pour 1 tour de radar complet :

  1. 3.2754s: NumWorks N0110 (firmware tiers Omega)
  2. 3.4296s : NumWorks N0100
  3. 3.5284s : NumWorks N0110
  4. 3.6286s : NumWorks N0100 (firmware tiers Omega)
  5. 6.499s : Graph 90+E
  6. 7.412s : TI-Nspire CX CR3-
  7. 9.703s : TI-Nspire CX CR4+
  8. 41min08.685s : TI-83 Premium CE Edition Python


Ohhhh la belle entourloupe ! Donnez le temps de la TI 83 PCE en minute et non pas en secondes ! :troll:
Le changement d'unité est subtile mais j'ai l’œil ! :D

On croirait presque que la TI 83 PCE est environ 12x moins performante que la NumWorks alors que ...
Image
Enseignant de mathématiques et d'informatique. Spécialité NSI : Des projets, des tutos, mais aussi de l'art
Calculatrice NumWorks : Des applications et des jeux, scripts, 📙 Découvrir la NumWorks
Avatar de l’utilisateur
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 45.9%
 
Messages: 1009
Images: 64
Inscription: 17 Mai 2012, 09:49
Localisation: Avignon
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: nsi_xyz

Re: Animation Radar Python pour Casio/NumWorks/TI via PPN

Message non lude critor » 10 Mai 2020, 11:28

Ah non, je pensais au contraire que le changement d'unité attirerait bien l'attention sur la gravité de la chose.

Mais si tu préfères : :)
  1. 3.2754s: NumWorks N0110 (firmware tiers Omega)
  2. 3.4296s : NumWorks N0100
  3. 3.5284s : NumWorks N0110
  4. 3.6286s : NumWorks N0100 (firmware tiers Omega)
  5. 6.499s : Graph 90+E
  6. 7.412s : TI-Nspire CX CR3-
  7. 9.703s : TI-Nspire CX CR4+
  8. 2468.685s : TI-83 Premium CE Edition Python
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41470
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Animation Radar Python pour Casio/NumWorks/TI via PPN

Message non lude cent20 » 10 Mai 2020, 11:35

Le plus important c'est ceci :

Mais voici aujourd'hui une solution que nous t'avons concoctée, PPN, pour PolyPyNet (abrégé du français PolyPythonnettes), une bibliothèque pour les unifier toutes ! :D

Non non, il ne s'agit absolument pas d'une bibliothèque graphique supplémentaire. :p

C'est en fait une bibliothèque de compatibilité. C'est 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. :bj:
  • 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. :bj:
PPN te permettra même d'exécuter tes scripts graphique Python pour calculatrices sur ton ordinateur avec tkinter ! :bj:

Enfin pour t'offrir un maximum de liberté, tu peux aussi bien distribuer la bibliothèque PPN avec tes propres scripts, qu'inviter tes utilisateurs à aller la récupérer séparément. :)


Ainsi, la compatibilité cassée par les décisions commerciales des constructeurs vient d'être rétabli. Merci beaucoup Critor !

Formulé avec des mots très simples :
Il sera possible de porter facilement un projet python graphique d'une calculatrice à l'autre sauf avec la TI 83 PCE mais c'es une autre histoire
Image
Enseignant de mathématiques et d'informatique. Spécialité NSI : Des projets, des tutos, mais aussi de l'art
Calculatrice NumWorks : Des applications et des jeux, scripts, 📙 Découvrir la NumWorks
Avatar de l’utilisateur
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 45.9%
 
Messages: 1009
Images: 64
Inscription: 17 Mai 2012, 09:49
Localisation: Avignon
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: nsi_xyz

Re: Animation Radar Python pour Casio/NumWorks/TI via PPN

Message non lude Lionel Debroux » 10 Mai 2020, 11:38

D'un côté, des solutions dont la performance diffère seulement par un demi ordre de grandeur... et de l'autre côté, une solution presque trois ordres de grandeur plus lente que la plus performante. C'est à la fois à rire et à pleurer... une nouvelle fois, la 83PCE EP est tout simplement remarquablement ridicule ?
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Animation Radar Python pour Casio/NumWorks/TI via PPN

Message non lude critor » 10 Mai 2020, 14:36

Adriweb était très déçu, et a donc exigé une version optimisée pour le module ti_graphics de la TI-83 Premium CE Edition Python 5.5 :p ; que voici :
archives_voir.php?id=2620443

C'est maintenant du sur-mesure pour la définition de l'écran de la TI-83 Premium CE Edition Python : :)
12514

Mais surtout, toutes les primitives et formes géométriques que le script geolib.py dessinait pixel par pixel, ont été remplacées par un simple appel aux fonctions équivalentes directement fournies par ti_graphics. Tu devrais remarquer une différence : ;)


Effectivement, la révolution du radar ne prend plus que 18.535s au lieu de 41min08.7s, une progression fulgurante en performances, la TI-83 Premium CE Edition Python revient dans la course ! :D
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41470
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Animation Radar Python pour Casio/NumWorks/TI via PPN

Message non lude Adriweb » 10 Mai 2020, 14:39

critor a écrit:Adriweb était très déçu, et a donc exigé une version optimisée pour le module ti_graphics de la TI-83 Premium CE Edition Python 5.5

Point du tout, ce n'était qu'une suggestion :P

Mais en effet, un gain de 137x, c'est pas commun...

Bien joué, en tout cas, et bon boulot pour tout ça!
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Animation Radar Python pour Casio/NumWorks/TI via PPN

Message non lude Lionel Debroux » 10 Mai 2020, 14:55

C'est déjà nettement moins inacceptable, en effet.
Bon, eh bien... les autres constructeurs n'ont plus qu'à ajouter les mêmes fonctions à leurs implémentations :)
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Animation Radar Python pour Casio/NumWorks/TI via PPN

Message non lude Ti64CLi++ » 10 Mai 2020, 21:30

Cela reste quand même nettement derrière les autres calculatrices, avec un temps près de 2x plus long que la TI-Nspire CX CR4+
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: Animation Radar Python pour Casio/NumWorks/TI via PPN

Message non lude Smart Crystal » 10 Mai 2020, 21:47

Vous pensez que ce serait une bonne idée d'intégrer PolyPyNet sur Omega (NumWorks) mais recodé pour être présent de base ? (en C, pas en Python bien sûr... ;) )
Attention, à partir de la version 16, les NumWorks ne peuvent plus installer des logiciels tiers tels que Delta ou Omega.
Toute mise à jour est à ce jour irréversible.

Avatar de l’utilisateur
Smart CrystalOmega
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 33.4%
 
Messages: 54
Inscription: 11 Avr 2019, 16:41
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: BUT Info [2A]

Suivante

Retourner vers News Divers

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 36 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1196 utilisateurs:
>1185 invités
>7 membres
>4 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)