setTextCursor()
Bibliothèque graphique pour shield Uno/Mega
Positionne le curseur texte
Exemples d'utilisation
setTextCursor(LARGEUR-30, HAUTEUR-8); text("Bonjour"); // Écrit le mot bonjour au milieu de l'écran
x=getTextCursorX(); text("A"); setTextCursor(x); text("B"); // Superposition de A et de B
Référence
void setTextCursor(int x[, int y]);
Paramètres passés
x: abscisse, y: ordonnée
Valeur retournée
Aucune
Voir aussi
- getTextCursorX(); Retourne l'abscisse du point-curseur texte
- getTextCursorY(); Retourne l'ordonnée du point-curseur texte
- textCursorX; Contient l'abscisse du point-curseur texte
- textCursorY; contient l'ordonnée du point-curseur texte
- Fonte vectorielle Définition de la fonte utilisée
- text(); Écrit du texte
- setTextSize(); Taille des caractères
- setTextBold(); Gras ou normal
- setTextItalic(); Italique ou normal
- setTextSerif(); Avec ou sans empattement
- setTextCursor(); Direction d'écriture des textes
- setTextKeep(); Choisit l'action si le texte déborde
- getTextWidth(); getTextHeight(); Retourne la taille de l'écriture de la chaine passée
Notes
Le curseur texte est le point le plus en haut à gauche qui sera utilisé
lors de la prochaine écriture. Après une écriture, il est positionné après le dernier caractère écrit, augmenté de l'espace
inter caractère. L'espace ainsi laissé est de "taille" pixels (2 pixels par défaut, la taille étant 2). L'espace entre deux
lignes est le double (parfois un peu moins car certains jambages dépassent de la matrice).
L'origine de l'écran est, comme pour le mode dessin, en haut à gauche. Les abscisses sont croissantes vers la droite et les ordonnées vers le bas. Si on fait pivoter le système d'écriture par la fonction setTextOrient(), cela fait aussi pivoter les axes définissant le curseur.
Le changement de position peut se choisir par la fonction setTextCursor(), et peut se lire par les fonctions getTextCursorX() et getTextCursorY().
Les coordonnés du curseur dépendent de la taille de l'écran, du mode paysage ou portrait et du sens de l'écriture. Si l'écriture se fait vers l'ouest, le point de coordonné (0,0) est en bas à droite. 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
// Ce programme écrit un premier texte (l'ombre), puis d'une autre couleur
// réécrit le texte légèrement décalé
#include <PxGraph_ST7781_Shield.h> // Voir http://arduino.dansetrad.fr/PxGraph
void setup()
{
setGraphMode(PAYSAGE); // Initialisation générale
setTextSize(3); setTextBold(1); // Caractères plus gros que d'habitude
// On va dessiner une ombre en rouge
setTextColor(RED);
setTextCursor(LARGEUR/2-60, HAUTEUR/2-15); // Pour écrire au milieu de l'écran
text("Bonjour");
// Et du texte en vert
setTextColor(GREEN);
setTextCursor(LARGEUR/2-58); // on se remet au centre, mais un peu décalé
text("Bonjour");
}
void loop()
{
}
Résultat:
Côté technique
L'abscisse du point curseur s'incrémente de la largeur du caractère écrit plus l'espace inter caractère. En mode de débordement NORMAL, si le caractère à écrire ne tient pas dans l'écran, parce qu'il est trop à droite, un retour chariot est inséré, que l'on soit au milieu d'un mot ou pas. Si le caractère ne tient pas parce qu'il serait écrit trop bas, un effacement d'écran est inséré et donc le point curseur se positionne en haut à gauche. En conséquence positionner le curseur texte en (100,10000) écrira à partir de (0,0).
En mode de débordement KEEP, le fonctionnement est le même, sauf qu'aucun effacement d'écran n'est fait. Les caractères peuvent se superposer.
En mode de débordement CUT, ce qui dépasse n'est pas dessiné. Aucun retour chariot n'est inséré.