final int numero=10;
float lato, lato2, width2;
float x_m, y_m;
float x_pos[], y_pos[];
void setup()
{
size(500, 500);
frameRate(30);
rectMode(CENTER);
smooth();
noStroke();
lato=width/numero;
lato2=lato/2.0;
width2=2.0*width;
x_pos=new float[numero];
y_pos=new float[numero];
for(int i=0; i<numero; i++)
{
x_pos[i]=i*lato+lato2;
y_pos[i]=i*lato+lato2;
}
noLoop();
}
void mouseMoved()
{
redraw();
}
void draw()
{
background(255);
fill(0,100,100);
float x_m=pmouseX;
float y_m=pmouseY;
for(int i=0; i<numero; i++)
for(int j=0; j<numero; j++)
{
float distanza = dist(x_pos[i], y_pos[j], x_m, y_m);
float lato_distanza = (distanza >= lato)? width2/distanza : distanza;
ellipse(x_pos[i], y_pos[j], lato_distanza, lato_distanza);
}
fill(0,200,200);
x_m=mouseX;
y_m=mouseY;
for(int i=0; i<numero; i++)
for(int j=0; j<numero; j++)
{
float distanza = dist(x_pos[i], y_pos[j], x_m, y_m);
float lato_distanza = (distanza >= lato)? width/distanza : distanza;
ellipse(x_pos[i], y_pos[j], lato_distanza, lato_distanza);
}
}