Il conteggio parte con il caricamento della pagina ma si può azzerare con il clic del mouse
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;
float mm, mmSTART;
void setup()
{
size(500, 500);
frameRate(10);
smooth();
noStroke();
xc=width/2;
yc=height/2;
dimensione=0.9*width;
lunghezzaS=0.8*xc;
lunghezzaM=0.65*xc;
lunghezzaH=0.5*xc;
lancettaS=new Lancetta(coloreS, passoS, spessoreS, lunghezzaS);
lancettaM=new Lancetta(coloreM, passoM, spessoreM, lunghezzaM);
lancettaH=new Lancetta(coloreH, passoH, spessoreH, lunghezzaH);
iSfondo=loadImage("sfondo500.png");
mmSTART=millis();
}
void mousePressed()
{
mmSTART=millis();
}
void aggiornaDati()
{
mm =millis()-mmSTART;
secondi=mm/1000.0;
minuti =(int)secondi/60; secondi=secondi%60;
ore =(int)minuti/60; minuti =minuti%60;
secondi=passoS*secondi-HALF_PI;
minuti =passoM*minuti -HALF_PI;
ore =passoH*ore -HALF_PI;
}
void draw()
{
aggiornaDati();
background(iSfondo);
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);
}
}