π
<-
Chat plein-écran
[^]

Animation Radar Python optimisée TI-83 Premium CE 5.5

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:

Animation Radar Python optimisée TI-83 Premium CE 5.5

Message non lude critor » 12 Mai 2020, 16:10

Dans un article précédent, nous te présentions notre bibliothèque de compatibilité automatique
PolyPyNet
pour les scripts
Python
graphiques sur calculatrices.

Au menu, compatibilité totale entre les scripts utilisant les bibliothèques graphiques propriétaires des différents constructeurs, même si utilisés chez la concurrence : :bj
  • kandinsky
    pour
    NumWorks
  • casioplot
    pour
    Casio Graph 90/35+E II
  • ti_graphics
    pour
    TI-83 Premium CE Edition Python
En prime
PolyPyNet
permet d'exécuter les scripts utilisant ces bibliothèques sur ordinateur, traduisant et corrigeant les appels graphiques en question pour
tkinter
! :bj:

12509En pratique, les performances des scripts faisant appel à
PolyPyNet
étaient globalement très satisfaisantes :
  • pas de ralentissement si exécuté sur la plateforme associée à la bibliothèque graphique utilisée
  • performances restant honorables si exécuté sur la plupart des plateformes concurrentes... à une exception près
Sur l'exemple traité d'une animation de radar, la
TI-83 Premium CE
était dans les 250 à 750 fois plus lente, mettant plus de 40 minutes à faire un tour complet là où la concurrence se contentait de quelques secondes ! :bj:

Le problème venait de l'architecture matérielle même de la
TI-83 Premium CE Edition Python
, déjà réexplicitée récemment. Les scripts
Python
n'y sont pas exécutés par le processeur
eZ80
principal, mais par un coprocesseur 32 bits
Cortex-M0+/ARMv6
.

C'est-à-dire que les scripts
Python
n'ont pas d'accès direct au matériel de la machine et notamment à l'écran. Toute commande graphique génère un événement de rafraichissement qui doit ici transiter via la processeur
eZ80
plus lent avant d'atteindre l'écran, d'où une latence très supérieure.

Les scripts conçus pour les bibliothèques graphiques minimalistes de la concurrence, faute de mieux appellent en boucle plein de commandes d'allumage de pixels
"set_pixel"
, ce qui est effectivement une catastrophe si exécuté à l'identique sur
TI-83 Premium CE Edition Python
. :'(

Mais
Texas Instruments
avait prévu le problème. Sa bibliothèque
ti_graphics
est tout sauf minimaliste. Elle comprend plein de fonctions dédiées pour tracer des primitives et formes géométriques en ne géréant qu'un seul événément de rafraichissement :
  • lignes
  • lignes brisées
  • polygones avec remplissage optionnel
  • rectangles avec remplissage optionnel
  • arcs de cercles ou cercles avec remplissage optionnel
  • arcs d'ellipses ou ellipses vec remplissage optionnel
12514En attendant mieux nous avons donc la solution manuelle, se sortir pour chaque script graphique
Python
une version dédiée spécialement optimisée pour la
TI-83 Premium CE Edition Python
.

Il suffit de remplacer les boucles de
set_pixel()
par les appels graphiques correspondants si existants dans
ti_graphics
.

Nous l'avons donc fait pour le radar, avec cette fois-ci un cadre d'affichage correspondant bien à la zone graphique de 320×210 pixels de la
TI-83 Premium CE Edition Python
.


Et bien la différence est impressionnante, plus que
18.535s
pour une révolution, soit une accélération d'un facteur de
133
! :#tritop#:
  1. 3.2754s
    :
    NumWorks N0110
  2. 3.4296s
    :
    NumWorks N0100
  3. 3.5284s
    :
    NumWorks N0110
  4. 3.6286s
    :
    NumWorks N0100
  5. 6.499s
    :
    Graph 90+E
  6. 7.412s
    :
    TI-Nspire CX CR3-
  7. 9.703s
    :
    TI-Nspire CX CR4+
  8. 18.535s
    :
    TI-83 Premium CE Edition Python
    (script dédié optimisé à la main)
  9. 41min08.685s
    :
    TI-83 Premium CE Edition Python
    (compatibilité automatique
    PolyPyNet
    )
Un effort donc manuel certes, mais un effort qui vaudra largement le coût pour tes futurs scripts graphiques ! ;)

Téléchargements
:

  • Radar
    (optimisé
    TI-83 Premium CE
    )
  • Radar
    (compatible tous modèles via
    PolyPyNet
    )
  • PolyPyNet
    (dernière version)
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 6%
 
Messages: 35486
Images: 9479
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
Classe: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Retourner vers News TI-z80 (TI-73, 76, 80, 81, 82, 83, 84, 85, 86)

Qui est en ligne

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

-
Rechercher
-
Sujets à la une
L'OS 5.5 de la TI-83 Premium CE / 84 Plus CE supprime l'assembleur - la plupart des jeux et certains programme ne fonctionneront plus
Omega, le fork étendant les capacités de ta NumWorks, même en mode examen !
Découvre les nouvelles fonctionnalités en Python de l'OS 5.5 pour la 83PCE/84+C-T Python Edition
Comparaisons des meilleurs prix pour acheter sa calculatrice !
1234
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...

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.
459 utilisateurs:
>435 invités
>20 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)