xxxxxxxxxx
//*****Pierre MARZIN 23/01/2020 porting an old sketch to p5.js****
var nbeCol, nbeRang;
var ecartX, ecartY;
var rayon;
var qua=false;
var back=false;
var multiplier=3;
partArray=[];
var decalage;
var multiplier=5;
function setup() {
createCanvas(windowWidth,windowHeight);
smooth();
decalage=this.y;
strokeWeight(1);
nbeCol=int(windowWidth/10);
nbeRang=int(nbeCol*windowHeight/windowWidth);
ecartX=1.5*(width/(nbeCol+1));
ecartY=1.5*(height/(nbeRang+1));
for (var i=0; i<nbeCol; i++) {
for (var j=0; j<nbeRang; j++) {
partArray[i*nbeRang+j]=new particle(-(width/4)+ecartX*(i+1), -(height/4)+ecartY*(j+1));
}
}
rayon=10*multiplier+30*multiplier*int(!qua);
updateArray();
}
function draw() {
if (mouseIsPressed) {
for (var i=0; i<partArray.length; i++) {
if (mouseButton==LEFT) {
partArray[i].moveToMouse();
} else if (mouseButton==RIGHT) {
partArray[i].moveToHome();
}
}
}
if (back) {
background(255);
for (var i=0; i<partArray.length; i++) {
partArray[i].backToOrigin(10);
}
}
updateArray();
}
function updateArray() {
background(255);
fill(255, 0, 255*int(!qua), 50);
ellipse(mouseX, mouseY, 2*rayon, 2* rayon);
stroke(0);
for (var i=0; i<nbeCol-1; i++) {
for (var j=0; j<nbeRang-1; j++) {
line(partArray[i*nbeRang+j].x, partArray[i*nbeRang+j].y, partArray[i*nbeRang+j+1].x, partArray[i*nbeRang+j+1].y);
line(partArray[i*nbeRang+j].x, partArray[i*nbeRang+j].y, partArray[(i+1)*nbeRang+j].x, partArray[(i+1)*nbeRang+j].y);
}
}
}
function mousePressed() {
if (mouseButton==CENTER) {
qua=!qua;
rayon=40*multiplier;
}
}
function mouseWheel(event)
{
if (event.delta > 0)
{
if (multiplier<12.5) {
multiplier+=1;
rayon=40*multiplier;
updateArray();
}
} else
{
if (multiplier>1) {
multiplier-=1;
rayon=40*multiplier;
updateArray();
}
}
}
function keyPressed() {
switch (keyCode) {
case 32:
back=true;
break;
case 81:
qua=!qua;
break;
case 88:
if (multiplier<12.5) {
multiplier+=.1;
rayon=40*multiplier;
updateArray();
}
break;
case 67:
if (multiplier>1) {
multiplier-=.1;
rayon=40*multiplier;
updateArray();
}
break;
}
}
function keyReleased() {
if (keyCode==32) {
back=false;
}
}