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.