Page 1 sur 1

[Astuce] Centrer horizontalement un texte en Ti-Basic

Message non luPosté: 24 Déc 2016, 17:16
de Eliastik
Bonjour,

Je vais vous présenter une petite astuce pour centrer horizontalement un nombre ou un texte qui est contenu dans une variable sur l'écran graphique, ce qui n'est pas facile si cette valeur varie au cours de l’exécution du programme.

Pour un nombre :

Code: Tout sélectionner
1+ent(log(abs(**Votre variable contenant le nombre**→L
Texte(**Coordonnées verticales**,.5(94-4L),**Votre variable contenant le nombre**

Si votre nombre est un nombre décimal, remplacez la première instruction par :
Code: Tout sélectionner
non(**Votre variable contenant le nombre**)+som(0 ou partDéc(abs(**Votre variable contenant le nombre**10^(somCum(binomFRép(13,0))-2-partEnt(log(abs(**Votre variable contenant le nombre**+non(**Votre variable contenant le nombre**→L

Sur TI-83 Premium CE avec OS 5.2 minimum, il est possible de remplacer la première instruction par l'instruction suivante (qui est beaucoup plus simple, mais pas compatible avec toutes les calculatrices) :
Code: Tout sélectionner
length(toString(**Votre variable contenant le nombre**→L

Si vous voulez afficher votre nombre en grand format, remplacez la dernière instruction par :
Code: Tout sélectionner
Texte(-1,**Coordonnées verticales**,.5(94-6L),**Votre variable contenant le nombre**

Explications :

L'instruction 1+ent(log(abs(**Votre variable contenant le nombre**→L calcule le nombre de chiffres composant le nombre, et la stocke dans la variable L.

L'instruction Texte(**Coordonnées verticales**,.5(94-4L),**Votre variable contenant le nombre** affiche ce nombre sur l'écran graphique, centré. Le calcul .5(94-4L) soustrait au nombre de pixels horizontaux totaux de l'écran (94) le nombre de pixels composants le nombre (4 car chaque caractère est composé de 4 pixels horizontaux) et divise le tout par 2 (dans ce cas je multiplie par 0.5 pour optimiser le calcul, ce qui revient au même).

Pour un texte :

C'est plus simple, car une instruction existe pour connaître le nombre de caractères d'une chaîne : longueur(
Ne fonctionne que pour les variables Chn/Str.

Code: Tout sélectionner
longueur(**Votre chaîne de caractère**→L
Texte(**Coordonnées verticales**,.5(94-4L),**Votre chaîne de caractère**

Si vous voulez afficher votre texte en grand format, remplacez la dernière instruction par :
Code: Tout sélectionner
Texte(-1,**Coordonnées verticales**,.5(94-6L),**Votre chaîne de caractère**

Exemple :

Voici une capture d'écran d'un de mes programmes (TI-Chrono, disponible ici) qui centre automatiquement le nombre de secondes restantes (ici dans la fonction minuterie, je les ai mis à 10 000 pour que vous voyez bien l'effet produit) :

Image

Voilà pour cette astuce !

Crédit :

Codes pour connaître le nombre de chiffres composant une variable trouvé ici : http://tibasicdev.wikidot.com/number-one-liners

Re: [Astuce] Centrer horizontalement un texte en Ti-Basic

Message non luPosté: 24 Déc 2016, 21:00
de Adriweb
Note: pour CE avec OS 5.2 minimum, pour obtenir la longueur de quelque chose, il suffit de faire length(toString(quelquechose