fullscreen int elliSec = 60;
int elliMin = 60;
int elliHour = 24;
int distance =40;
int distMin = 30;
int distHour = 20;
float angle_increment = TWO_PI/elliSec;
float angle_incrementHour = TWO_PI/elliHour;
float current_angle =0;
void setup() {
size(200, 200);
smooth();
noStroke();
//colorMode(HSB, 360, 100, 100);
}
void draw() {
background(0);
fill(255);
text((hour() + ":" + minute() + ":" + second()),130,180);
for (int i=0; i<elliHour; i+=1) {
fill(240, 78, 62);
float offsetX = cos(current_angle+angle_incrementHour*i)*distHour;
float offsetY = sin(current_angle+angle_incrementHour*i)*distHour;
ellipse(width/2 + offsetX, height/2 + offsetY, 10, 10);
}
for (int i=0; i< hour(); i+=1) {
fill(246, 139, 31);
float offsetX = cos(current_angle+angle_incrementHour*i)*distHour;
float offsetY = sin(current_angle+angle_incrementHour*i)*distHour;
ellipse(width/2 + offsetX, height/2 + offsetY, 10, 10);
}
for (int i=0; i<elliMin; i+=1) {
fill(47, 181, 106);
float offsetX = cos(current_angle+angle_increment*i)*distMin;
float offsetY = sin(current_angle+angle_increment*i)*distMin;
ellipse(width/2 + offsetX, height/2 + offsetY, 10, 10);
}
for (int i=0; i<minute(); i+=1) {
fill(246, 139, 31);
float offsetX = cos(current_angle+angle_increment*i)*distMin;
float offsetY = sin(current_angle+angle_increment*i)*distMin;
fill(153, 212, 192);
ellipse(width/2 + offsetX, height/2 + offsetY, 10, 10);
}
for (int i=0; i<elliSec; i+=1) {
fill(48, 105, 179);
float offsetX = cos(current_angle+angle_increment*i)*distance;
float offsetY = sin(current_angle+angle_increment*i)*distance;
ellipse(width/2 + offsetX, height/2 + offsetY, 10, 10);
}
for (int i=0; i<second(); i+=1) {
fill(68, 200, 245);
float offsetX = cos(current_angle+angle_increment*i)*distance;
float offsetY = sin(current_angle+angle_increment*i)*distance;
ellipse(width/2 + offsetX, height/2 + offsetY, 10, 10);
}
}
I don't know if the hours are going to work if you have a watch that works with 12hours, mine has 24hours!