Code de base
Ce code détermine l’angle entre la position précédente de la souris et l’actuelle, et dessine un trait entre les deux points d’après cet angle. Pas très spectaculaire dans cette première version :
void setup(){
size(800,600);
background(255);
}
void draw(){
float angle=atan2(pmouseX-mouseX,pmouseY-mouseY);
pushMatrix();
translate(pmouseX,pmouseY);
rotate(-angle);
line(0,0,0,-dist(pmouseX,pmouseY,mouseX,mouseY));
popMatrix();
}Améliorer en utilisant mouseMoved
Ce code dessine des triangles. On peut aussi dessiner des formes plus complexes ou par exemple des lettres suivant le chemin de la souris.
float px=0;
float py=0;
boolean start=false;
void setup() {
size(800, 600);
background(255);
}
void draw() {
}
void mouseMoved() {
if (start==false) { // eviter de démarrer dans le coin supérieur gauche
px=mouseX;
py=mouseY;
start=true;
}
float angle=atan2(px-mouseX, py-mouseY);
float taille=dist(px, py, mouseX, mouseY);
pushMatrix();
translate(px, py);
rotate(-angle);
float longueur=-dist(px, py, mouseX, mouseY);
line(-10, 0, 10, 0);
line(-10, 0, 0, longueur);
line(10, 0, 0, longueur);
popMatrix();
px=mouseX;
py=mouseY;
}Encore plus loin
Un exemple à télécharger propose une version un peu plus poussée utilisant un texte, à écrire avec la souris. La touche "espace" permet de démarrer/arrêter l’écriture, et la touche "x" permet d’effacer l’écran.