SERIF - NORMAL

Constantes pour le choix du mode avec empattement ou pas.

 

Exemples d'utilisation

setTextSerif(NORMAL); // Supprime les empattements pour les fonctions text() qui suivent
textSerif=NORMAL; // Équivalent en utilisant la variable
setTextSerif(SERIF); // Dessine les empattements pour les fonctions text() qui suivent
if (getTextSerif()==SERIF) text("On a des empattements") // Écrit, si c'est vrai, "On a des empattements"
if (textSerif==SERIF) text("On a des empattements") // Équivalent en utilisant la variable

 

Référence

#define SERIF true
#define NORMAL 0

 

Voir aussi

- setTextSerif(serif); Choix avec ou sans empattements
- b=getTextSerif(); Retourne SERIF ou NORMAL
- textSerif Contient SERIF ou NORMAL
- Fonte vectorielle Définition de la fonte utilisée
- text(); Écrit du texte
- setTextColor(); Couleur du texte
- setTextSize(); Taille des caractères
- setTextBold(); Gras ou normal
- setTextItalic(); Italique ou normal
- setTextOrient(); Direction d'écriture des textes

 

Notes

Les empattements (serif en anglais) sont des petites droites qui sont rajoutées à certaines extrémités des caractères, en rouge sur l'image de droite. Dans la fonte de PecheuxGraph, si serif=NORMAL, il n'y a pas d'empattement, mais si serif=SERIF on va trouver des petits traits horizontaux sur certaines droites verticales. Par défaut serif=SERIF.

Les empattement ont une longueur de taille/2 pixels et les caractères de taille 1 n'ont pas la place de dessiner ces empattements. Les caractères de taille 2 vont avoir des empattements de longueur 1 pixel ce qui peut se dessiner. Sur page de description de la fonte vectorielle, les empattement apparaissent en vert

A l'initialisation, le mode est SERIF. Le changement de mode se fait par la fonction setTextSerif() ou grâce à la variable textSerif. La lecture du mode se fait par la fonction getTextSerif() ou grâce à la variable textSerif. C'est mieux de passer par les fonctions, mais passer par la variable nécessite moins d'octets dans un contexte de carte Uno, c'est une économie.

 

Exemple

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

// Ce programme affiche les caractères principaux en rouge et dessine les empattement possibles en jaune. Pour ce faire, on dessine
// en jaune le caractère avec empattement et on dessine par dessus en rouge le caractère sans empattement. Comme les caractères avec
// ou sans empattements n'ont pas forcément la même taille, et donc doivent se décaler pour se superposer, on mémorise ceux qui
// s'élargissent (tableau "large[]")

#
  $menu = ":PG";
  include <PecheuxGraph_ILI9341_8bits.h>

int large['z'+1]; // 5 si le caractère correspondant est plus large en sérif que sans
int largeur; // Du caractère analysé
char caractere; // Pour dessiner

void setup() 
{
  setGraphMode(PAYSAGE); // Initialisation générale
  setTextSize(10); // Pour mieux voir
  
  // Initialisation du tableau large
  setTextColor(BLACK); // Pour ne pas voir l'initialisation
  for (caractere='!'; caractere<='z'; caractere++) // Pour chaque caractère imprimable et codé sur un seul octet
  {
    setTextCursor(10,10); setTextSerif(NORMAL); text(String(caractere)); // Dessin du caractère sans empattement non affiché (noir sur fond noir)
    largeur=getTextCursorX(); // Pour pouvoir comparer avec celle si il y empattements
    setTextCursor(10,10); setTextSerif(SERIF); text(String(caractere)); // Dessin du caractère avec empattement non affiché (noir sur fond noir)
    large[caractere]=((getTextCursorX()>largeur)? 5: 0); // large contient des 5 pour les caractères qui s'élargissent avec empattements
  }
  large['G']=0; large['a']=0; large['d']=0; large['q']=0; large['&']=0; // Caractères qui ne s'élargissent pas à gauche, mais seulement à droite
}

void loop()
{
  if (++caractere>'z') caractere='!'; // Choix du caractère: caractère suivant et bouclage
  setTextCursor(20,10); setTextSerif(SERIF); setTextColor(YELLOW); text(String(caractere)); // Empattements en jaune (le reste disparaît)
  setTextCursor(20+large[caractere],10); setTextSerif(NORMAL); setTextColor(RED); text(String(caractere)); // Surimpression pour mettre en rouge le caractère
  delay(1000);
  fillRect(0,0,95,95,BLACK); // Efface l'écran, enfin ce qui est utile
}

Résultat: