setTextOrient()

Impose la direction d'écriture pour la fonction text()

 

Exemples d'utilisation

setTextOrient(NORMAL); // Écrit dans le sens habituel, Par défaut
setTextOrient(EST); // Fait la même chose
setTextOrient(OUEST); text("Bonjour"); // Le mot "Bonjour" s'affiche à l'envers
setTextOrient(10); // A éviter, même si cela est équivalent à setTextOrient(OUEST); 

 

Référence

void setTextOrient(byte direction);

Paramètre passé

direction: direction d'écriture. Peut prendre les valeurs NORMAL ou EST, NORD, SUD et OUEST

Valeur retournée

Aucune

 

Voir aussi

- EST Pour écrire dans le sens normal
- SUD Pour écrire vers le bas
- OUEST Pour écrire vers la gauche
- NORD Pour écrire vers le haut
- NORMAL Pour écrire dans le sens normal
- getTextOrient(); Retourne la direction d'écriture des textes
- textOrient Contient la direction d'écriture des textes
- setGraphMode(); Initialisation de l'écran
- clrscr(); Efface l'écran
- text(); Écrit du texte
- setTextSize(); Taille des caractères
- setTextBold(); Gras ou normal
- setTextItalic(); Italique ou normal
- setTextOrient(); Avec ou sans empattement
- setTextCursor(); Coordonnés le point-curseur
- setTextKeep(); Choisit l'action si le texte déborde
- getTextWidth(); getTextHeight(); Retourne la taille de l'écriture de la chaîne passée

 

Notes

Il est possible d'écrire dans les 4 directions sur une même "page". Quand on change l'orientation, cela réinitialise le curseur et le met dans le coin en haut à gauche pour le texte. Si on a fait appel à setTextOrient(NORD); les coordonnés pour le graphisme et pour les textes sont différents, l'origine est en haut à gauche pour les graphismes, mais en bas à gauche pour les textes. L'orientation des textes ne change pas ce qui est du dessin. Par exemple, on est toujours en mode portrait, mais les caractères s'écrivent de travers. Il n'y a que pour une écriture vers l'est pour laquelle les coordonnés des textes est la même que ceux des dessins

Par défaut, les textes s'écrivent normalement, vers l'est. On peut utiliser au choix setTextOrient(EST); qui donne la direction, ou setTextOrient(NORMAL); qui est le sens normal d'écriture.

A l'initialisation, le mode est EST. Le changement de mode se fait par la fonction setTextOrient() ou grâce à la variable textOrient. C'est mieux de passer par la fonction, mais utiliser par la variable nécessite moins d'octets dans un contexte de carte Uno, c'est une économie.

Ne pas confondre le mode PAYSAGE, PORTAIT, qui réinitialise l'écran et impose les directions pour les graphiques et dans un premier temps pour les texte, avec les directions d'écriture qui peuvent être choisi pour chaque affichage. On ne peut pas être en PORTRAIT et PAYSAGE en même temps, alors qu'on peut avoir des affichages vers l'est et vers le nord en même temps.

 

Exemple

PecheuxGraph_ILI9341_8bits.zip\PecheuxGraph_ILI9341_8bits\examples\Documentation\Exemple-307-setTextOrient\Exemple-307-setTextOrient.ino (dans votre fichier téléchargé):

// Quel que soit le mode, on peut toujours écrire dans les 4 directions
// Ce programme écrit 4 phrases dans les 4 directions

#include <PecheuxGraph_ILI9341_8bits.h>

void setup() 
{
  setGraphMode(PAYSAGE); // Initialisation générale

  setTextOrient(NORD); // C'est assez parlant, non?
  text("Bonjour au NORD\nJe perd le nord");
  setTextOrient(NORMAL); // Ou setTextOrient(EST);
  text("Bonjour vers l'EST\nL'est honni!");
  setTextOrient(SUD);
  text("Bonjour au SUD\nHo! Bonne mère");
  setTextOrient(OUEST);
  text("Bonjour vers l'OUEST\nT'est à l'ouest!");
}

void loop()
{
}

Résultat:

 

Côté technique

La direction est codée sur 2 bits seulement. Si on passe à la fonction un mot de 8 bits, les 6 bits de poids fort sont ignorés. Cela évite de faire un test et un message d'erreur. Normalement cela ne se produit pas si on utilise les constantes prédéfinies. Du coup un setTextOrient(random(256)); donne une direction au hasard.