Per semplificare il codice introduco la classe Lancetta e il metodo aggiornaDati()
final color coloreS=color(255, 0, 0); final color coloreM=color(0, 255, 0); final color coloreH=color(0, 0, 255); final float passoS=TWO_PI/60.0; final float passoM=TWO_PI/60.0; final float passoH=TWO_PI/12.0; final int spessoreS=5; final int spessoreM=10; final int spessoreH=15; float dimensione, lunghezzaS, lunghezzaM, lunghezzaH, secondi, minuti, ore; float xc, yc; PImage iSfondo; Lancetta lancettaS, lancettaM, lancettaH; void setup() { size(500, 500); frameRate(5); smooth(); xc=width/2; yc=height/2; dimensione=0.9*width; lunghezzaS=0.8*xc; lunghezzaM=0.65*xc; lunghezzaH=0.5*xc; iSfondo=loadImage("sfondo500.png"); lancettaS=new Lancetta(coloreS, passoS, spessoreS, lunghezzaS); lancettaM=new Lancetta(coloreM, passoM, spessoreM, lunghezzaM); lancettaH=new Lancetta(coloreH, passoH, spessoreH, lunghezzaH); } void aggiornaDati() { secondi=second(); minuti=minute()+secondi/60.0; ore=hour()+minuti/60; secondi=passoS*secondi-HALF_PI; minuti =passoM*minuti -HALF_PI; ore =passoH*ore -HALF_PI; } void draw() { background(iSfondo); aggiornaDati(); lancettaH.draw(ore); lancettaM.draw(minuti); lancettaS.draw(secondi); } class Lancetta { color colore; float passo; int spessore; float lunghezza; Lancetta(color co, float pa, int sp, float lu) { colore=co; passo=pa; spessore=sp; lunghezza=lu; } void draw(float angolo) { stroke(colore); strokeWeight(spessore); float x=xc+cos(angolo)*lunghezza; float y=yc+sin(angolo)*lunghezza; line(xc, yc, x, y); } }