clrscr()
Remplit l'écran avec une couleur donnée, choisit la couleur complémentaire pour les dessins et les textes
Exemples d'utilisation
clrscr(); // Le plus utilisé et le plus rapide. Efface l'écran... clrscr(BLACK); // C'est la même chose. clrscr(RED); // Remplit l'écran de rouge, les dessins et textes seront par défaut cyan
Référence
void clrscr(word couleur = BLACK);
Paramètre passé
couleur: couleur du fond d'écran. Fond noir si la couleur est omise
Valeur retournée
Aucune
Voir aussi
- setLimites(); Limite la zone de dessin
- fillRect(); Trace une boîte pleine
- fill(); Remplit avec la couleur demandée
- setGraphMode(); Initialisation de l'écran
- RGBcolor(); Transforme un triplet RGB en un code couleur
- setDrawColor(); Couleur du dessin
- setTextColor(); Couleur du texte
- BLACK, WHITE, ...: Constantes couleurs
- point(); Dessine un point
- text(); Écrit du texte
- screenPrint(); Copie d'écran sur la carte SD
Notes
Le plus souvent, on remplit l'écran de noir ou de blanc. A ce moment les dessins se feront par défaut dans la couleur opposée, et on dessinera ou écrira en blanc sur fond noir, ou noir sur fond blanc
Pour la plupart des fonctions graphiques, omettre la couleur, c'est dessiner avec la couleur précédente qui a été mémorisée. Le cas de clrscr() est particulier car omettre la couleur, c'est effacer avec du noir
Il y a plusieurs différences entre le remplissage de l'écran par clrscr(couleur) et par
fillRect(couleur):
après clrscr(couleur) | après fillRect(couleur) | |
couleur de l'écran | couleur | couleur |
couleur des prochains dessins | opposé de couleur | couleur |
couleur des prochains textes | opposé de couleur | inchangé |
curseur texte | en haut à gauche | inchangé |
mode Draw/Inverse | Draw | inchangé |
Si on a limité les dessins avec la fonction setLimites() les limites ne seront pas changées et seule la partie comprise dans les limites est effacée.
Le remplissage est plus rapide si les poids forts de la couleur sont égaux aux poids faibles (80ms au lieu de 250ms pour un écran 320x240).
Exemple
PecheuxGraph_ILI9341_8bits.zip\PecheuxGraph_ILI9341_8bits\examples\Documentation\Exemple-102-clrscr\Exemple-102-clrscr.ino (dans votre fichier téléchargé):
// Effacer un écran, c'est le remplir avec un couleur donnée. // Ici chaque boucle efface l'écran 4 fois (3 façons de le faire) # $menu = ":PG"; include <PecheuxGraph_ILI9341_8bits.h> void setup() { setGraphMode(PAYSAGE); // Initialisation de l'écran } void loop() { clrscr(); // Efface l'écran delay(1000); clrscr(RED); // Efface l'écran avec du rouge delay(1000); fillRect(0,0,MAX_X,MAX_Y,BLACK); // Efface aussi l'écran sans repositionner le curseur texte delay(1000); clrscr(BLUE); // Efface l'écran avec du bleu delay(1000); }
Résultat:

Côté technique
clrscr() utilise fillRect(0, 0, MAX_X, MAX_Y, couleur). clrscr() impose le mode dessin, appelle fillRect(), repositionne le curseur texte et ajuste les couleurs.
La couleur est codée sur 16 bits. Si l'octet de poids fort est identique à l'octet de poids faible (0X0000, 0X5353, 0x2020....) on n'a pas besoin de changer la valeur sur le bus de donnée. On ne met la valeur qu'une fois et on envoie un signal carré sur la broche /WR. Cela va donc vite. C'est en particulier le cas du noir. Dans les autres cas on est obligé de mettre alternativement les poids forts et les poids faibles avant d'envoyer l'impulsion /WR. Cela prend beaucoup plus de temps.