Le langage Python de la TI-83 Premium CE Edition Python et les modèles équivalents (TI-84 Plus CE-T Python Edition en Europe, TI-84 Plus CE Python en Amérique du Nord) te permettait d'afficher du texte en couleur grâce à ti_graphics, sa bibliothèque de tracé par pixels.
Contrairement à celles de bibliothèques concurrentes, les primitives de ti_graphics ne gèrent pas de couleur de fond.
On peut toutefois construire de quoi contourner la chose, en traçant un rectangle plein sur lequel on écrit ensuite le texte :
- Code: Select all
from ti_graphics import drawString, setColor
from ti_system import disp_wait
setColor((255, 0, 255))
drawString("Hallo TI", 0, 30)
disp_wait()
Contrairement à celles de bibliothèques concurrentes, les primitives de ti_graphics ne gèrent pas de couleur de fond.
On peut toutefois construire de quoi contourner la chose, en traçant un rectangle plein sur lequel on écrit ensuite le texte :
- Code: Select all
from ti_graphics import drawString, fillRect, setColor
from ti_system import disp_wait
def myDrawString(s, x, y, cf, cb=None):
if cb:
setColor(cb)
fillRect(x, y, 10 * len(s), 15)
setColor(cf)
drawString(s, x, y)
myDrawString("Hallo TI", 0, 30, (255, 255, 0), (0, 0, 255))
disp_wait()
L'affichage de texte couleur via ti_graphics a toutefois divers inconvénients selon ce que tu fais :
- l'affichage est ici superposé à celui de la console, mais avec un système de positionnement totalement différent, ce qui impliquera quelques acrobaties si tu souhaites le faire coexister avec des print()
- l'affichage superposé à la console sera perdu à chaque rafraîchissement de celle-ci, d'où la nécessité de mettre le script en pause juste après ces affichages via un appel disp_wait()
- dans tous les cas obtenir 1 affichage de texte couleur nécessite bien plus de lignes qu'un simple print() et donc autant de choses à comprendre, ce qui peut rebuter les débutants
Et bien formidable découverte de commandblockguy, les TI-83 Premium CE Edition Python et compatibles gèrent des commandes CSI directement dans la console Python !
Les commandes CSI pour Control Sequence Introducer (plus d'infos ici), partie de ce qu'on appelle en français séquences d'échappement ANSI, sont des codes directement intégrés aux chaînes de caractère et permettant de contrôler le formatage du texte leur faisant suite dans une console ou un terminal.
C'est fantastique, les 2 affichages couleur précédents peuvent maintenant être réalisés dans la console en seulement 2 lignes, rien à importer !
L'affichage de texte couleur avec la simplicité d'un print(), un formidable avantage exclusif à ta TI-83 Premium CE !
Les commandes CSI pour Control Sequence Introducer (plus d'infos ici), partie de ce qu'on appelle en français séquences d'échappement ANSI, sont des codes directement intégrés aux chaînes de caractère et permettant de contrôler le formatage du texte leur faisant suite dans une console ou un terminal.
C'est fantastique, les 2 affichages couleur précédents peuvent maintenant être réalisés dans la console en seulement 2 lignes, rien à importer !
- Code: Select all
print("\x1B[5mHallo TI")
print("\x1B[3;4mHallo TI")
L'affichage de texte couleur avec la simplicité d'un print(), un formidable avantage exclusif à ta TI-83 Premium CE !
La calculatrice semble gérer 16 codes de commandes CSI permettant de régler 16 couleurs différentes, aussi bien pour la couleur de texte que la couleur de fond. Les codes CSI correspondant vont de 0 à 15 et pour 256 combinaisons possibles, illustrées ci-contre dans l'ordre par le script ci-dessous :
Au-delà de l'ordre, cela ne correspond pas exactement à la palette de couleurs utilisables en langage TI-Basic.
En effet elles ne sont qu'au nombre de 15 alors qu'ici nous en avons 16, la couleur rajoutée semblant être le cyan.
- Code: Select all
def color_str(s, cf, cb=7):
return "\x1B[" + str(cf) + ";" + str(cb) + "m" + s
n = 16
s = ""
for cb in range(n):
for cf in range(n):
s += color_str("X", cf, cb)
if cb % 2: s += "\n"
Au-delà de l'ordre, cela ne correspond pas exactement à la palette de couleurs utilisables en langage TI-Basic.
En effet elles ne sont qu'au nombre de 15 alors qu'ici nous en avons 16, la couleur rajoutée semblant être le cyan.
Attention, cela ne fonctionne que sur les TI-83 Premium CE Edition Python et modèles similaires.
Cela ne marche pas sur les modèles plus anciens avec l'adaptateur TI-Python externe, ni sur les TI-Nspire CX II.
Cela ne marche pas sur les modèles plus anciens avec l'adaptateur TI-Python externe, ni sur les TI-Nspire CX II.