point()

Dessine un point aux coordonnés passés en paramètre

 

Exemples d'utilisation

point(0, 0, GREEN); // Dessine un point (pixel) vert dans le coin en haut à gauche (origine)
point(0, MAX_Y, GREEN); // Dessine un point (pixel) vert dans le coin en bas à gauche (y croît vers le bas)
point(MAX_X, 0, GREEN); // Dessine un point (pixel) vert dans le coin en haut à droite (x croît vers la droite)
point(MAX_X, MAX_Y, GREEN); // Dessine un point (pixel) vert dans le coin en bas à droite
point(100, 150); // Dessine un point aux coordonnés (100,150). La couleur sera la même que pour le dernier tracé
point(10000, 150); // En dehors de l'écran, ne dessine rien
setLimites(0, 0, 100, 100); point(10000, 150); // En dehors des limites, ne dessine rien
point(random(LARGEUR), 0); // Dessine un point quelque part sur la ligne la plus haute
point(random(LARGEUR), random(HAUTEUR), random(RANDOM_COLOR)); // Dessine un point d'une couleur quelconque n'importe où
setDrawInverse(INVERSE); point(x, y); // Inverse la couleur d'un point

 

Référence

void point(int x, int y, word couleur);
void point(int x, int y);

Paramètre passé

x: abscisse du point
y: ordonnée du point
couleur: couleur du point, voir BLACK, WHITE, ... ou RGBcolor

Valeur retournée

Aucune

 

Voir aussi

- getPoint(); Retourne la couleur d'un point
- RGBcolor(); Transforme un triplet RGB en un code couleur
- MAX_X, MAX_Y...: Valeurs des coordonnés graphiques
- BLACK, WHITE, ...: Constantes couleurs
- setLimites(); Limite la zone de dessin
- line(); Trace une ligne
- rect(); Trace les bords d'un cadre
- fillRect(); Trace une boîte pleine
- circle(); Trace un cercle

 

Notes

En mode NORMAL, dessine le point 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 est omis. La nouvelle couleur est mémorisée pour les prochains tracés graphiques. En mode INVERSE, cette fonction complémente la couleur sans tenir compte de la couleur éventuellement passée en paramètre; la nouvelle couleur du point n'est dans ce cas non mémorisée.

Le point n'est dessiné que si il tient dans les limites données par la fonction setLimites() (l'écran en entier par défaut). Dessiner un point en dehors n'a aucun effet.

 

Exemple

PecheuxGraph_ILI9341_8bits.zip\PecheuxGraph_ILI9341_8bits\examples\Documentation\Exemple-200-point\Exemple-200-point.ino (dans votre fichier téléchargé):

// Ce programme affiche un dessin, prend un point quelconque de l'écran, et le redessine (même couleur).
// Il appelle ensuite point sans donner de paramètre couleur pour les 4 points adjacents. Le dessin
// se mélange jusqu'à ce qu'une couleur prenne le dessus
// Avec une photo, c'est plus long si on travaille sur l'écran complet, mais c'est plus intéressant.
// L'image va devenir floue, elle sera définie par de moins en moins de pixels
 
#
  $menu = ":PG";
  include <PecheuxGraph_ILI9341_8bits.h>

void setup() 
{
  // Initialisations
  setGraphMode(PAYSAGE); // Initialisation obligatoire pour utiliser l'afficheur
  
  // Dessin d'un fond d'écran:
  fillRect(DEMI_LARGEUR-20, DEMI_HAUTEUR-20, DEMI_LARGEUR, DEMI_HAUTEUR, RED); // En haut à gauche
  fillRect(DEMI_LARGEUR, DEMI_HAUTEUR-20, DEMI_LARGEUR+20, DEMI_HAUTEUR, GREEN); // En haut à droite
  fillRect(DEMI_LARGEUR-20, DEMI_HAUTEUR, DEMI_LARGEUR, DEMI_HAUTEUR+20, BLUE); // En bas à gauche
  fillRect(DEMI_LARGEUR, DEMI_HAUTEUR, DEMI_LARGEUR+20, DEMI_HAUTEUR+20, YELLOW); // En bas à droite
}

int x, y; // Coordonnés d'un point quelconque
void loop()
{
  // Prendre un point au hasard et le redessiner dans la même couleur
  x=random(40)+DEMI_LARGEUR-20; y=random(40)+DEMI_HAUTEUR-20;
  // Redessiner le point
  point(x,y,getPoint(x,y)); // Mémorise la couleur
  // 4 points adjacents
  point(x,y-1); // Point au dessus, de quelle couleur? de celle du dessus...
  point(x,y+1); // Point en dessous
  point(x-1,y); // Point à gauche
  point(x+1,y); // Point à droite
}

Résultat en accéléré:

Voici ce que cela donne sur une image complète:

 

Côté technique

Le tracé d'un point aux coordonnées (x,y) se fait en restreignant la possibilité de dessiner dans le driver au rectangle((x, y), (MAX_X, MAX_Y)) puis en envoyant la valeur de la couleur. On peut changer uniquement les deux première valeurs, et en n'écrivant jamais la limite supérieure. Cela va plus vite.

Le choix de ne pas donner un objet de type coordonnés, mais plutôt l'abscisse et l'ordonnée permet d'une part au plus grand nombre de comprendre, mais aussi de pouvoir écrire facilement à moindre coût, des choses comme point(random(LARGEUR),0,BLUE);