- Mouse (posizione): direzione del campo magnetico
- Mouse (tasto): attrazione/repulsione
- Applicazione Java
final int numero=10;
float lato,
lato_2;
float x_pos[];
float y_pos[];
boolean tasto;
void setup()
{
size(500, 500);
frameRate(30);
smooth();
stroke(0);
fill(0,255,255);
strokeWeight(2);
lato=(float)width/(numero+1);
lato_2=lato/2.0;
x_pos=new float[numero];
y_pos=new float[numero];
for(int i=1; i <= numero; i++)
{
x_pos[i-1]=i*lato;
y_pos[i-1]=i*lato;
}
noLoop();
}
void mouseMoved() { tasto=true; redraw(); }
void mouseReleased() { tasto=true; redraw(); }
void mouseDragged() { tasto=false; redraw(); }
void mousePressed() { tasto=false; redraw(); }
float x_c, y_c,
x_m, y_m,
x_d, y_d,
angolo;
void draw()
{
background(255);
x_m=mouseX;
y_m=mouseY;
translate(x_m, y_m);
for(int i=0; i < numero; i++)
for(int j=0; j < numero; j++)
{
x_c=x_pos[i]-x_m;
y_c=y_pos[j]-y_m;
ellipse(x_c, y_c, 6, 6);
angolo=atan2(y_c, x_c);
if(tasto)
angolo += PI;
x_d = lato_2*cos(angolo);
y_d = lato_2*sin(angolo);
line(x_c, y_c, x_c+x_d, y_c+y_d);
}
}