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: | |||