π
<-
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:
Online

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

Unread postby critor » 12 May 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 5.1%
 
Posts: 35262
Images: 9403
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

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

Who is online

Users browsing this forum: No registered users and 13 guests

-
Search
-
Featured topics
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
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety 
-
Stats.
400 utilisateurs:
>382 invités
>12 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)