xxxxxxxxxx
121
var couleur;
var x = 0;
var y = 0;
// distance entre 2 lignes
var stepSize = 2;
// taille maximale d'une ligne
var lineLength = 30;
function setup() {
createCanvas(400,600);
background(32,44,46);
// choisi une couleur
couleur = color(160,194,123);
// défini x et y comme la position de la souris
x = mouseX;
y = mouseY;
}
function draw() {
// si le bouton gauche de la souris est pressé
if (mouseIsPressed && mouseButton == LEFT) {
// permet de calculer la distance entre le point d'avant et la position de la souris
var d = dist(x, y, mouseX, mouseY);
// si la distance est plus grande que la distance voulu entre deux lignes
if (d > stepSize) {
// Calcule l'angle (en radians) entre un point spécifié et l'origine des coordonnées, tel que mesuré à partir de l'axe x positif.
var angle = atan2(mouseY - y, mouseX - x);
// push(), translate() et rotate permettent de faire tourner et de positionnerl les lignes suivant l'angle calculé
push();
translate(x, y);
rotate(angle);
// appliqué la couleur random à la ligne
stroke(couleur);
//dessiner la ligne
line(0, 0, 0, lineLength * random(0.95, 1) * d / 10);
// retourner à l'état initial, cette fonction est toujours exécutée après push()
pop();
// calculer les nouvelles positions de x et y suivant l'angle
x = x + cos(angle) * stepSize;
y = y + sin(angle) * stepSize;
}
}
}
// quand on appuie sur la souris (s'exécute une seul fois)
function mousePressed() {
// calcul les nouvelles positions de x et y suivant la position de la souris
x = mouseX;
y = mouseY;
// génère une nouvelle couleur aléatoire
}
// fonction qui s'exécute quand une touche est relâchée
function keyReleased() {
if (key == 'f' || key == 'F') {
fill(160,194,123);
noStroke();
beginShape();
beginShape();
let a = random(0,133);
let b = random(0,150);
let c = random(134,266);
let d = random(267,400);
let e = random(150,300);
let f = random(301,450);
let g = random(451,600);
let h = random(0,133);
let i = random(0,133);
let j = random(0,133);
let k = random(0,150);
let l = random(0,150);
let m = random(134,266);
let n = random(267,400);
let o = random(267,400);
let p = random(267,400);
let q = random(150,300);
let r = random(301,450);
let s = random(451,600);
let t = random(451,600);
vertex(a, b);
vertex(h, e);
vertex(i, f);
vertex(j, g);
vertex(c, s);
vertex(d, t);
vertex(n, r);
vertex(o, q);
vertex(p, k);
vertex(m, l);
endShape(CLOSE);
}
// appuyer sur "s" permet d'enregistrer l'image
if (key == 's' || key == 'S') {
saveCanvas(year()+month()+day()+'-'+hour()+ minute() + second() +'_lignes'+ '.jpg');
}
// appuyer sur effacer permet d'effacer tout
if (keyCode == DELETE || keyCode == BACKSPACE){
background(255);
}
}