line()
Dessine une droite quelconque
Exemples d'utilisation
line(0,0,MAX_X,MAX_Y,GREEN); // Trace la diagonale de l'écran en vert line(MAX_X,MAX_Y,0,0); // Fait exactement la même chose si on avait dessiné en vert avant line(-100,-100,100,100,CYAN); // Trace en cyan le morceau qui tient dans l'écran line(0,0,100,100); // Fait exactement la même chose setLimites(10, 10, 20, 20); line(0,0,MAX_X,MAX_Y,GREEN); // Identique à line(10,10,20,20);
Référence
void line(int x1, int y1, int x2, int y2, word couleur); void line(int x1, int y1, int x2, int y2);
Paramètres passés
x1,y1: coordonnés d'une extrémité
x2,y2: coordonnés de l'autre extrémité
couleur: couleur de la droite, voir BLACK, WHITE, ... ou RGBcolor
Valeur retournée
Aucune
Voir aussi
- vLine(); Trace une ligne verticale
- hline(); Trace une ligne horizontale
- lineTo(); Trace une ligne qui part de la dernière ligne tracée
- setLimites(); Limite la zone de dessin
- rect(); Trace les bords d'un cadre
- fillRect(); Trace une boîte pleine
- RGBcolor(); Transforme un triplet RGB en un code couleur
- MAX_X, MAX_Y... Valeurs des coordonnés graphiques
- BLACK, WHITE, ... Constantes couleurs
- setDrawInverse(); Choix du mode dessin ou inversion
- point(); Dessine un point
- circle(); Trace un cercle
- text(); Écrit du texte
Notes
En mode NORMAL, dessine la droite avec la couleur spécifiée si présente, ou avec la dernière couleur utilisée par point(), rect(), circle(),... si le paramètre couleur n'est pas passé. La nouvelle couleur est mémorisée pour les prochains tracés graphiques. En mode INVERSE, cette fonction inverse la couleur sans tenir compte de la couleur éventuellement passée en paramètre; la nouvelle couleur de la droite n'est pas mémorisée.
Il est plus rapide et le code est plus optimisé, de tracer des horizontales ou des verticales par les procédures adéquates que de les dessiner avec line().
N'est dessiné que la partie qui tient dans les limites données par la fonction setLimites() (tout l'écran par défaut).
Exemple
PecheuxGraph_ILI9341_8bits.zip\PecheuxGraph_ILI9341_8bits\examples\Documentation\Exemple-208-line\Exemple-208-line.ino (dans votre fichier téléchargé):
// Ce programme dessine des lignes quelconques et bariolées. #include <PecheuxGraph_ILI9341_8bits.h> void setup() { setGraphMode(PAYSAGE); } void loop() { line(random(LARGEUR),random(HAUTEUR),random(LARGEUR),random(HAUTEUR),RANDOM_COLOR); // Trace des lignes line(random(LARGEUR),0,random(LARGEUR),MAX_Y,BLACK); // Efface une ligne line(0,random(HAUTEUR),MAX_X,random(HAUTEUR),BLACK); // Et même une deuxième }
Résultat:

Côté technique
vLine() et hLine() utilisent la fonction fillRect(). line() utilise la fonction point(). C'est pourquoi vLine() et hLine() sont plus rapides que line().
Une ligne qui "monte" peu sera toujours tracé de la gauche vers la droite. Les autres seront tracées vers le bas. C'est en fait une question d'algorithme. Du coup, cela ne coûte rien de pouvoir inverser les 2 extrémités dans l'appel de la fonction.
Le tracé de la droite se calcule même si la droite sort de l'écran ou de la zone limitée par setLimites(), mais le pont n'est pas dessiné. Cela n'a pas d'influence sur le résultat, c'est juste un peu plus long si la droite sort.