fill, setFillMode, getFillMode

Définition Utilisation Exemple Côté technique
 

PecheuxGraph.zip\PecheuxGraph\examples\Documentation\Exemple-202-fillCoccinelle\Exemple-202-fillCoccinelle.ino (dans votre fichier téléchargé):

// Ce programme montre le remplissage par une couleur avec arrêt sur une
// couleur différente couleur de départ
// Ici, on dessine une coccinelle et la boucle lui change la couleur de son dos.
// Si on remplit en blanc (ce qui est possible un jour) il n'y a plus de dos et les remplissages
// suivants rempliront aussi l'espace autour de la bête. 

#include <PecheuxGraph.h>

void setup() 
{
  setGraphMode(PAYSAGE);
  fill(0,0,WHITE); // = clrscr(WHITE); mais lent de chez lent. Ici c'est pour l'exemeple!

  // Dessin d'une coccinelle
  arc(DEMI_LARGEUR-20, DEMI_HAUTEUR, 80, DEPART_SUD+ARRIVEE_NORD, RED); // corps
       hLine(DEMI_LARGEUR-20, DEMI_LARGEUR+20, DEMI_HAUTEUR-80, RED);
       hLine(DEMI_LARGEUR-20, DEMI_LARGEUR+20, DEMI_HAUTEUR+80, RED);
       vLine(DEMI_LARGEUR+20, DEMI_HAUTEUR-80, DEMI_HAUTEUR+80, RED); 
       fill(DEMI_LARGEUR, DEMI_HAUTEUR, RED); // Ici le mode de remplissage importe peu
  arc(DEMI_LARGEUR+20, DEMI_HAUTEUR, 80, DEPART_NORD+ARRIVEE_SUD, BLACK); // tête
       vLine(DEMI_LARGEUR+20, DEMI_HAUTEUR-80, DEMI_HAUTEUR+80, BLACK);
       fill(DEMI_LARGEUR+30, DEMI_HAUTEUR, BLACK); // Ici le mode de remplissage importe peu
  for (int nb=6; nb>0; nb--)                           // six points noirs
  {      
    int x=DEMI_LARGEUR-60+random(65),
        y=DEMI_HAUTEUR-70+20*nb; // int fonctionne toujours car l'instruction précédente finit par  ","
    circle(x, y, 10, BLACK);  fill(x, y, BLACK); // Ici le mode de remplissage importe peu
  }
}

void loop()
{
  setFillMode(COCCINELLE); // L'autre mode ne fonctionnerait pas
  fill(DEMI_LARGEUR-99, DEMI_HAUTEUR, RANDOM_COLOR | GREY); // Remplissage du corps (perdu si on a du noir ou du blanc!)
  delay(1000);
}

 

PecheuxGraph.zip\PecheuxGraph\examples\Documentation\Exemple-203-fillStar\Exemple-203-fillStar.ino (dans votre fichier téléchargé):

// Ce programme montre le remplissage par une couleur avec arrêt sur une
// frontière de la couleur de remplissage. On trace une étoile et on la remplit. Il
// faut mémoriser la position de l'étoile (sinon on remplirait le ciel) ainsi que
// sa couleur pour s'arrêter sur le bord de l'étoile.

#include <PecheuxGraph.h>

void star(int x, int y, int couleur) // Dessine une étoile
{
  line(10+x,3+y,24+x,-8+y,couleur); lineTo(6+x,-8+y);
  lineTo(0+x,-25+y);        lineTo(-6+x,-8+y);
  lineTo(-24+x,-8+y);       lineTo(-10+x,3+y);
  lineTo(-15+x,20+y);       lineTo(0+x,10+y);
  lineTo(15+x,20+y);        lineTo(10+x,3+y);
}

void setup() 
{
  setGraphMode(PAYSAGE); // Obligatoire pour utiliser l'écran
  setFillMode(STAR); // L'autre mode ne fonctionnerait pas si le fond n'est plus noir
}

int x,y,couleur; // Paramètres d'une étoile
void loop()
{
  // On place une étoile pleine sur l'écran
  star(x=random(LARGEUR-20)+10, y=random(HAUTEUR-20)+10, RANDOM_COLOR); // Dessin de l'étoile creuse
  delay(300);
  fill(x, y, getDrawColor()); // Remplissage de l'étoile

  // Petite attente
  delay(200);
}

 

Le remplissage se limite à la partie qui tient dans l'écran et qui tient dans les limites données par la fonction setLimites()

Voir aussi:
- setLimites(); Limite la zone de dessin
- setDrawInverse(); Choix du mode dessin ou inversion
- RGBcolor(); Transforme un triplet RGB en un code couleur
- BLACK, WHITE, ...: Constantes couleurs
- rect(); Trace les bords d'un cadre
- fillRect(); Trace une boîte pleine
- circle(); Trace un cercle