Définition | Utilisation | Exemple | Côté technique |
PecheuxGraph.zip\PecheuxGraph\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[]") #include <PecheuxGraph.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(false); 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(true); 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(true); setTextColor(YELLOW); text(String(caractere)); // Empattements en jaune (le reste disparaît) setTextCursor(20+large[caractere],10); setTextSerif(false); 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 } ![]()
Voir aussi: |