Apprendre à dessiner avec du code


La base: Création du "canvas"


Le setup() est une fonction qui s'éxécute au lancement du programme.
Ci-dessous, le programme crée une fenêtre (canvas) de dimension (300x300 pixels) avec une couleur de fond (background) (verte).
les couleurs se déterminent en (r,v,b) : r pour le rouge, v pour le vert et b pour le bleu. les nombres écrits peuvent varier de 0 à 255.
Ainsi (0,0,0) donne du noir, (255,255,255) donne du blanc, (255,0,0) donne du rouge, (255,99,71) donne la couleur appelée tomato etc..
On trouve sur internet des sites qui donnent les codes couleurs: couleurWeb

Comment se repérer dans le canvas ?


Quand on travaille en 2 dimensions (2D), on utilise deux axes de coordonnées x et y correspondant respectivement à la largeur (axe horizontal) et à la hauteur (axe vertical).
Par convention, le coin en haut à gauche du canvas correspond aux valeurs x=0 et y=0. Les valeurs x sont croissantes vers la droite et les valeurs y sont croissantes vers le bas, contrairement à notre habitude en mathématique.
Ces valeurs x et y peuvent s'étendre théoriquement à l'infini, même si, en réalité, cela dépendra des dimensions de l’écran de l’ordinateur. C'est donc dans cet espace que nous allons dessiner.


Dessiner avec P5.Js


Comment dessiner une ligne, un point ?

Le programme ci-dessous dessine une ligne entre deux points dont les coordonnées sont (20,60) et (100,30).
On peut demander au programme de dessiner des lignes en couleur. Par défaut la couleur est noire.
l'instruction pour : "prendre un stylo rouge" est : stroke(255,0,0);
Pour le point l'instruction est : point(x,y); où x et y sont les coordonnées du point. Faites des essais.

Comment dessiner un rectangle ?

L'instruction pour dessiner un rectangle est : rect(x,y, largeur, hauteur); où x et y sont les coordonnées du coin supérieur gauche du rectangle, largeur et hauteur sont les dimensions du rectangle. comme dans l'exemple ci dessous.
fill(255,0,0); est la couleur de remplissage(rouge) du rectangle.
noFill(); est l'instruction qui abandonne la couleur de remplissage.

Comment dessiner une ellipse ?

Linstruction pour dessiner une ellipse est : ellipse(x,y,diamètre horizontal, diamètre vertical); où x et y sont les coordonnées du centre de l'ellipse et les diamètres ...
comme dans l'exemple ci-dessous.

Comment dessiner un triangle, un quadrilatère ?

l'instruction pour dessiner un triangle est : triangle(x1,y1,x2,y2,x3,y3); où x1,y1,x2,y2,x3,y3 sont les coordonnées des sommets du triangle.
L'instruction pour dessiner un quadrilatère est : quad(x1,y1,x2,y2,x3,y3,x4,y4); où ....(devinez).

Comment dessiner une courbe de Bézier ?

Une courbe de Bézier est une courbe passant par le premier et le dernier de quatre points en ajustant au mieux la courbure par rapport au deux autres points.
L'instuction pour dessiner une courbe de bezier est : bezier(x1,y1,x2,y2,x3,y3,x4,y4); où x1,y1,x2,y2,x3,y3,x4,y4 sont les coordonnées des quatre points dans l'ordre. Dans l'exemple ci-dessous on a dessiné une courbe de bézier.
Ce n'est pas la courbe la plus facile à manipuler...

Des lignes et des courbes passants par des points...

Pour dessiner des lignes passants par des points on utilise l'instruction :
beginShape();
vertex(x1,y1);
vertex(x2,y2);
.........
endShape();


Pour dessiner une courbe passant par des points on utilise l'instruction :
beginShape();
curveVertex(x1,y1);
curveVertex(x2,y2);
.........
endShape();

Comment dessiner des arcs de cercles ?

L'instruction pour dessiner un arc de cercle est :
arc(x,y,diamètre horizontal,diamètre vertical,angle de départ, angle d'arrivée)
Par défaut les angles sont exprimés en radian, on peut forcer le programme à les lire en degré avec l'instruction :
angleMode(DEGREES);

Maintenant vous savez l'essentiel pour réaliser votre propre dessin...


Sur cette page on ne peut pas sauvegarder le travail que l'on a fait.
Pour garder une trace du programme que vous avez écrit, copiez le et coller le dans un fichier texte ( worpad,bloc note ...) et enregistrez le. On pourra le faire exécuter plus tard dans un autre environnement.