xxxxxxxxxx
95
"// noprotect"
var img;
// définir les directions possibles
var NORTH = 2;
var NORTHEAST = 7;
var EAST = 16;
var SOUTHEAST = 1;
var SOUTH = 3;
var SOUTHWEST = 4;
var WEST = 8;
var NORTHWEST = 1;
var direction;
// définir l'espace entre les points
var stepSize = 10;
// définir la vitesse
var speed = 100;
// taille des pixels
var diameter= 5;
var posX;
var posY;
// chargement de l'image, l'image doit être dans le dossier assets
function preload() {
img = loadImage('assets/banquetalgo.jpg');
}
function setup() {
createCanvas(600, 600);
imageMode(CENTER);
noStroke();
posX = random(width);
posY = random(height);
}
function draw() {
// chargement des pixels de l'image
img.loadPixels();
for (var i = 0; i <= speed ; i++) {
// choisir aléatoirement la direction
direction = int(random(0, 4));
// 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;
var pix = img.get(posX, posY);
fill(pix);
ellipse(posX + stepSize / 9, posY + stepSize / 9, diameter, diameter);
}
}
// 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');
}
// appuyer sur effacer permet d'effacer tout
if (keyCode == DELETE || keyCode == BACKSPACE){
background(255);
}
}