Plus : dessiner des éléments en suivant la souris

Ce script permet de dessiner des éléments graphiques en adaptant l’orientation suivant le trajet de la souris.

Précédent | 20/27 | Suivant

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.