setLimites()
Permet de limiter les dessins à une zone rectangulaire.
Exemples d'utilisation
setLimites(0,0,10,10); // Permet de ne dessiner que dans ce petit carré setLimites(0,0,1000,1000); // Limite à l'écran car l'écran est plus petit setLimites(); // Limite à l'écran tout entier (= enlève les limites) setLimites(1); // Interdit la colonne la plus à gauche
Référence
void setLimites(int x1 = 0, int y1 = 0, int x2 = 32000, int y2 = 32000);
Paramètres passés
x1,y1: coordonnés d'un sommet du rectangle
x2,y2: coordonnés du sommet opposé
Ne sera dessiné que ce qui tient dans le rectangle défini
Valeur retournée
Aucune
Voir aussi
- setGraphMode(); Initialisation de l'écran
- setTextOrient(); Direction d'écriture des textes
- screenPrint(); Copie d'écran sur la carte SD
Notes
Les paramètres définissent un rectangle. Cela fonctionne comme si l'écran était plus petit. Cela concerne tous les tracés (points, droites, cercles, rectangles, textes, images...). Attention la fonction screenPrint(), utilisant tout l'écran remet les limites à l'écran entier.
Si une valeur dépasse les limites de l'écran physique, la limite est alors fixée au bord de l'écran. Si on ne donne pas de paramètres, c'est qu'il s'agit de l'écran entier.
Exemple
PecheuxGraph_ILI9341_8bits.zip\PecheuxGraph_ILI9341_8bits\examples\Documentation\Exemple-103-setLimites\Exemple-103-setLimites.ino (dans votre fichier téléchargé):
// L'intérieur d'une maison est dessinée et le soleil passe derrière la // fenêtre On ne peut pas dessiner des morceaux de cercle pour faire // "apparaître" ou "disparaître" le soleil. Par contre on peut dessiner le // soleil en entier mais limiter son dessin à la taille de la fenêtre. Comme // il y a deux fenêtres dans ce cas, je dessine le tout deux fois, la // première en se limitant à la fenêtre de gauche, la deuxième fois à la // fenêtre de droite #include <PecheuxGraph_ILI9341_8bits.h> const int CIEL = 0x755E; void setup() { setGraphMode(PAYSAGE); // Initialisation maison(0, 0); // Dessin de l'intérieur d'une maison fillRect(50, 55, 107, 155, CIEL); // Vitre de gauche fillRect(114, 55, 170, 155); // Vitre de droite } int x; // abscisse du centre du soleil void loop() { if (++x > 250) x = 0; // x décrit [0..250] // Dessin du soleil dans la nouvelle position setLimites(50, 55, 107, 155); // Ce qui apparaît dans la vitre de gauche fillCircle(x, 140 - x / 2, 20, YELLOW); // Soleil circle(x, 140 - x / 2, 21, CIEL); // Effacement périphérique circle(x, 140 - x / 2, 22, CIEL); // Effacement double setLimites(114, 55, 170, 155); // Ce qui apparaît dans la vitre de droite fillCircle(x, 140 - x / 2, 20, YELLOW); // Soleil circle(x, 140 - x / 2, 21, CIEL); // Effacement périphérique circle(x, 140 - x / 2, 22, CIEL); // Effacement double delay(40); // Sinon le soleil va trop vite }
Résultat: