xxxxxxxxxx
86
// définir les directions possibles
var NORTH = 0;
var NORTHEAST = 2;
var EAST = 3;
var SOUTHEAST = 3;
var SOUTH = 5;
var SOUTHWEST = 6;
var WEST = 7;
var NORTHWEST = 8;
var direction;
// définir l'espace entre les points
var stepSize = 100;
// définir le diametre des points
var diameter = 65000;
// définir la vitesse
var speed = 25;
var posX;
var posY;
function setup() {
createCanvas(400, 400);
stroke(10, 140, 260, 25);
fill(46, 251, 55, 40);
background(255);
// définir la position de départ
posX = width / 2;
posY = height / 2;
}
function draw() {
for (var i = 0; i <= speed ; i++) {
stepSize =random(8, 56)
// choisir aléatoirement la direction
direction = int(random(0, 8));
// si la direction est NORTH alors le point remonte (on enlève la taille de la distance à la position actuelle pour définir la nouvelle position )
if (direction == NORTH) {
posY -= stepSize;
} else if (direction == NORTHEAST) {
posX += stepSize;
posY -= stepSize;
} else if (direction == EAST) {
posX += stepSize;
} else if (direction == SOUTHEAST) {
posX += stepSize;
posY += stepSize;
} else if (direction == SOUTH) {
posY += stepSize;
} else if (direction == SOUTHWEST) {
posX -= stepSize;
posY += stepSize;
} else if (direction == WEST) {
posX -= stepSize;
} else if (direction == NORTHWEST) {
posX -= stepSize;
posY -= stepSize;
}
// quand l'agent idiot sort de la page, il revient de l'autre côté
if (posX > width) posX = 0;
if (posX < 0) posX = width;
if (posY < 0) posY = height;
if (posY > height) posY = 0;
// on dessine l'agent idiot
ellipse(posX + diameter / 15, posY + diameter / 15, 3, 12);
rect(posX + stepSize / 1, posY + stepSize / 1, 5, 2);
}
}
// au clic avec la souris, remplit le fond de blanc et redémarre
function mousePressed(){
background(255);
}
// fonction qui s'exécute quand une touche est relâchée
function keyReleased() {
// appuyer sur "s" permet d'enregistrer l'image
if (key == 's' || key == 'S') {
saveCanvas(year()+month()+day()+'-'+hour()+ minute() + second() +'_grille'+ '.jpg');
}
}