Orologio analogico 1

Le lancette dei minuti e delle ore si muovono in modo continuo come negli orologi analogici reali…

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;
PImage iSfondo;
float  xc, yc, x, y;

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

void draw()
{
    background(iSfondo);
    secondi=second();
    minuti=minute()+secondi/60.0;
    ore=hour()+minuti/60;
    ore=passoH*ore-HALF_PI;
    x=xc+cos(ore)*lunghezzaH;
    y=yc+sin(ore)*lunghezzaH;
    stroke(coloreH);
    strokeWeight(spessoreH);
    line(xc, yc, x, y);

    minuti=passoM*minuti-HALF_PI;
    x=xc+cos(minuti)*lunghezzaM;
    y=yc+sin(minuti)*lunghezzaM;
    stroke(coloreM);
    strokeWeight(spessoreM);
    line(xc, yc, x, y);

    secondi=passoS*secondi-HALF_PI;
    x=xc+cos(secondi)*lunghezzaS;
    y=yc+sin(secondi)*lunghezzaS;
    stroke(coloreS);
    strokeWeight(spessoreS);
    line(xc, yc, x, y);
}