A.9 Fonction avancée de remplissage :

Il existe trois primitives permettant de colorier une forme : La primitive remplis, la primitive rempliszone et la primitive remplispolygone.

A.9.1 remplis et rempliszone

On peut apparenter ces primitives avec la fonction "pot de peinture" utilisée dans de nombreux logiciels de retouche d’images. On peut atteindre les bords de la zone de dessin. Il y a deux règles à respecter pour utiliser correctement ces primitives :
  1. Le crayon doit être en position baissé (bc).
  2. La tortue ne doit pas être située sur un pixel de la couleur dont on veut remplir la forme. (Si on veut colorier en rouge, ne pas se trouver soi-même sur du rouge...)

Voyons un exemple pour expliquer la différence entre remplis et rempliszone :


pict

FIG. A.1Situation initiale

Le pixel sous la tortue est actuellement de couleur blanche. La primitive remplis va colorier tous les pixels blancs voisins avec la couleur du crayon en cours. Si par exemple on tape : fcc 1 remplis


pict

FIG. A.2Avec la primitive remplis

Revenons à présent au premier cas, Si la couleur du crayon de la tortue est le noir, la primitive rempliszone, colorie tous les pixels voisins jusqu’à rencontrer la couleur en cours (ici noire).


pict

FIG. A.3Avec la primitive rempliszone, en tapant : fcc 0 rempliszone

Voici, un bel exemple d’utilisation de la primtive remplis :

 pour demice :c
 # trace un demi-cercle de diamètre :c
 repete 180 [av  :c*tan 0.5 td 1]
 av :c*tan 0.5
 td 90 av :c
 fin
 
 pour arcenciel :c
 si :c<100 [stop]
 demice :c td 180 av 20 tg 90
 arcenciel :c-40
 fin
 
 pour dep
 lc td 90 av 20 tg 90 bc
 fin
 
 pour demarrer
 ct arcenciel 400 go tg 90 av 20 re 120 de lc td 90 av 20 bc
 fcc 0 remplis dep
 fcc 1 remplis dep
 fcc 2 remplis dep
 fcc 3 remplis dep
 fcc 4 remplis dep
 fcc 5 remplis dep
 fcc 6 remplis dep
 fin

pict

FIG. A.4Arc-en-LOGO

A.9.2 La primitive remplispolygone



remplispolygone liste



Cette primitive permet de remplir une forme en utilisant une série de triangles. A chaque nouvelle ligne tracée, un triangle est rempli. La liste passée en argument contient les instructions assurant le découpage en triangles de la forme désirée.