setTextBold()

Impose l'épaisseur des tracés des textes.

 

Exemples d'utilisation

setTextBold(BOLD); // Passage en mode gras
setTextBold(NORMAL); // Retour au caractères normaux (non gras)
setTextBold(1); // Caractères filiformes (un seul trait)
setTextBold(3); // Caractères dessinées avec trois traits

 

Référence

void setTextBold(int epaisseur);

Paramètre passé

epaisseur: NORMAL pour le mode normal par défaut, BOLD pour le mode gras par défaut, sinon nombre de lignes des tracés

Valeur retournée

Aucune

 

Voir aussi

- BOLD Pour le passage au mode gras par défaut
- NORMAL Pour le passage au mode normal par défaut
- getTextBold(); Retourne l'épaisseur des tracés texte
- textBold Contient l'épaisseur des tracés texte
- Fonte vectorielle Définition de la fonte utilisée
- text(); Écrit du texte
- setTextSize(); Taille des caractères
- setTextItalic(); Italique ou normal
- setTextSerif(); Avec ou sans empattement
- setTextOrient(); Direction d'écriture des textes

 

Notes

Les caractères sont dessinés par des traits et des arcs de cercle. En appelant setTextBold(epaisseur); chaque ligne sera dessinée par "epaisseur" droites ou "epaisseur" arcs. Ainsi si epaisseur=1, on dessine 1 seul trait, le tracé est filiforme. Pour epaisseur=2 on aura 2 traits, pour epaisseur=3, on aura 3 traits... Si on passe comme paramètre NORMAL, le tracé est choisi pour donner un rendu agréable. Si on passe comme paramètre BOLD, on a un rendu gras. L'épaisseur dépend de la taille des caractères.

Si on change la taille des caractères, en appelant setTextSize(), cela remet la fonte en épaisseur normale.

 

Exemple

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

// Pour une taille donnée, essais sur des gras de plus en plus prononcés
// Fonctionne mieux en mode paysage. En mode portrait, les caractères se
// supperposent à partir de la taille 7.

#
  $menu = ":PG";
  include <PecheuxGraph_ILI9341_8bits.h>
void setup() 
{
  setGraphMode(PAYSAGE); // Initialisation générale
}

int taille=1;
int lignesNormal, lignesBold; // Nombre de lignes dans ces deux modes

void loop()
{
  // Nouvelle taille de caractères
  setTextSize(taille);
  clrscr(); 

  
  // Affichage normal en rouge
  setTextBold(NORMAL); // Passage au mode normal
  setTextColor(RED);
  text("Taille "+String(taille));
  lignesNormal=getTextBold(); // Mémorisation du nb de lignes

  // Affichage du mot Bold en vert
  setTextBold(BOLD); // Passage au mode gras
  setTextColor(GREEN);
  text("\nBold");
  lignesBold=getTextBold(); // Mémorisation du nb de lignes

  // Affichage en bas d'une palette de gras
  setTextCursor(0,HAUTEUR-8*taille-8); // Se mettre en bas à gauche
  for (int i=1; i<8; i++)
  {
    setTextBold(i); // Pour différentes épaisseurs
    if (i==lignesNormal) setTextColor(RED); // Cela correspond au mode NORMAL
    else if (i==lignesBold) setTextColor(GREEN); // Cela correspond au mode BOLD
    else setTextColor(WHITE); // Autres valeurs
    text(String(i)); // Et on affiche le nombre de lignes tracé
  }
 
  delay(5550); // Pour qu'on ait bien le temps de voir
  if (++taille==10) taille=1; // Passe à la taille suivante, max 9
}

Résultat:

Ecrit en rouge les caractères normaux, en vert les gras, en blanc d'autres possibilités. Les chiffres correspondent au paramètre passé à setTextBold().

 

Côté technique

Les caractères sont définis par des vecteurs. Par exemple, le U ci-contre est défini par 3 vecteurs repérés 1 pour le centre d'un arc de cercle, 0 et 2 pour des droites. En mode filiforme, pour chaque vecteur on dessine une droite seule ou un seul arc. Si on veut un caractère plus épais on va tracer plus de droites et d'arcs. Si j'agrandis les arcs de cercles, pour le U, il faudra agrandir les droites vers la gauche pour le vecteur 2, mais vers la droite pour le vecteur 0. Ce n'est pas simple. J'ai choisi alors d'agrandir les tracés des deux côtés. Pour un rajout de 1 seule ligne, je la rajoute d'un côté ou de l'autre sans grande importance. J'ai choisi d'agrandir les arcs (mieux pour les points qui sont définis par un cercle de rayon 0) et de doubler les droites vers la gauche et vers le haut. Pour 2 lignes en plus, ce n'est pas compliqué, je rajoute une ligne de tous les côtés.