xxxxxxxxxx
170
//dessiner, appyer sur 'r' pourenlever la partie de droite, on peut re-dessiner
//enfin appuyer sur 'f' pour faire apparaitre une forme aléatoire à gauche de la même couleur que le fond et 'o'pour faire apparaître une autre forme aléatoire à droite de la même couleur que les traits
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(800,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(32,44,46);
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);
}
if (key == 'r' || key == 'R') {
noStroke()
fill(32,44,46)
rect(400,0,400,600)
}
if (key == 'o' || key == 'O') {
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+400, b);
vertex(h+400, e);
vertex(i+400, f);
vertex(j+400, g);
vertex(c+400, s);
vertex(d+400, t);
vertex(n+400, r);
vertex(o+400, q);
vertex(p+400, k);
vertex(m+400, 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);
}
}