- 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); } }