|
/* |
|
* us p5.js to draw a clock on a 960x500 canvas |
|
*/ |
|
function draw_clock(hour, minute, second, millis, alarm) { |
|
background(61, 61, 61); |
|
fill(255); |
|
noStroke(); |
|
//colour variables |
|
//6am to 6pm (day) |
|
var h = color(253, 235, 1); |
|
var m = color(248, 214, 43, 200); |
|
var s = color(247, 200, 46, 200); |
|
var mil = color(251, 255, 143, 200); //pale yellow |
|
//6pm to 6am (night) |
|
var h2 = color(57, 83, 164); |
|
var m2 = color(62, 94, 171, 200); |
|
var s2 = color(75, 111, 182, 200); |
|
var mil2 = color(149, 185, 244, 200); |
|
|
|
//arc position variables |
|
var x = 480; |
|
var y = 250; |
|
//I struggled on how to make me arc move, Jdoglamp's code helped me with that and I changed it to fit my own design and thinking |
|
var minutes = map(minute, 0, 59, 0, 180); |
|
var seconds = map(second, 0, 59, 0, 180); |
|
var arc_millis = map(millis, 0, 999, 0, 180); |
|
|
|
|
|
//START OF ALARM |
|
if(alarm == 0){ |
|
if(second % 2 == 0){ |
|
//day alarm part1 |
|
//background(124, 124, 124); |
|
if((hour>=6) && (hour<18)){ |
|
var hours = map(hour, 6, 18, 0, 180); |
|
if(hours > 0){ |
|
fill(h2); |
|
arc(x, y, 450, 450, radians(180), radians(180+hours)); |
|
} |
|
fill(m2); |
|
if(minutes > 0){ |
|
arc(x, y, 350, 350, radians(180), radians(180+minutes)); |
|
} |
|
fill(s2); |
|
if(seconds > 0){ |
|
arc(x, y, 250, 250, radians(180), radians(180+seconds)); |
|
} |
|
fill(mil2); |
|
if(arc_millis > 0){ |
|
arc(x, y, 100, 100, radians(180), radians(180+arc_millis)); |
|
} |
|
//blue part of the clock bellow |
|
//swapped to yellow |
|
fill(h); |
|
arc(x, y, 450, 450, 0, PI); |
|
fill(m); |
|
arc(x, y, 350, 350, 0, PI); |
|
fill(s); |
|
arc(x, y, 250, 250, 0, PI); |
|
fill(mil); |
|
arc(x, y, 100, 100, 0, PI); |
|
} |
|
|
|
//night alarm part1 |
|
else{ |
|
var night; |
|
if (hour > 17) { |
|
night = map(hour, 18, 23, 0, 90); |
|
} |
|
else if(hour <= 5){ |
|
night = map(hour, 0, 5, 90, 180); |
|
} |
|
fill(h); |
|
if (night > 0) { |
|
arc(x, y, 450, 450, 0, radians(night)); |
|
} |
|
fill(m); |
|
if(minutes > 0){ |
|
arc(x, y, 350, 350, 0, radians(minutes)); |
|
} |
|
fill(s); |
|
if(seconds > 0){ |
|
arc(x, y, 250, 250, 0, radians(seconds)); |
|
} |
|
fill(mil); |
|
if(arc_millis > 0){ |
|
arc(x, y, 100, 100, 0, radians(arc_millis)); |
|
} |
|
//originally yellow part |
|
//swapped to blue |
|
fill(h2); |
|
arc(x, y, 450, 450, PI, 0); |
|
fill(m2); |
|
arc(x, y, 350, 350, PI, 0); |
|
fill(s2); |
|
arc(x, y, 250, 250, PI, 0); |
|
fill(mil2); |
|
arc(x, y, 100, 100, PI, 0); |
|
} |
|
} |
|
else { |
|
if((hour>=6) && (hour<18)){ |
|
var hours = map(hour, 6, 18, 0, 180); |
|
if(hours > 0){ |
|
fill(h); |
|
arc(x, y, 450, 450, radians(180), radians(180+hours)); |
|
} |
|
fill(m); |
|
if(minutes > 0){ |
|
arc(x, y, 350, 350, radians(180), radians(180+minutes)); |
|
} |
|
fill(s); |
|
if(seconds > 0){ |
|
arc(x, y, 250, 250, radians(180), radians(180+seconds)); |
|
} |
|
fill(mil); |
|
if(arc_millis > 0){ |
|
arc(x, y, 100, 100, radians(180), radians(180+arc_millis)); |
|
} |
|
//blue part of the clock bellow |
|
fill(h2); |
|
arc(x, y, 450, 450, 0, PI); |
|
fill(m2); |
|
arc(x, y, 350, 350, 0, PI); |
|
fill(s2); |
|
arc(x, y, 250, 250, 0, PI); |
|
fill(mil2); |
|
arc(x, y, 100, 100, 0, PI); |
|
} |
|
|
|
//(night) |
|
else{ |
|
var night; |
|
if (hour > 17) { |
|
night = map(hour, 18, 23, 0, 90); |
|
} |
|
else if(hour <= 5){ |
|
night = map(hour, 0, 5, 90, 180); |
|
} |
|
fill(h2); |
|
if (night > 0) { |
|
arc(x, y, 450, 450, 0, radians(night)); |
|
} |
|
fill(m2); |
|
if(minutes > 0){ |
|
arc(x, y, 350, 350, 0, radians(minutes)); |
|
} |
|
fill(s2); |
|
if(seconds > 0){ |
|
arc(x, y, 250, 250, 0, radians(seconds)); |
|
} |
|
fill(mil2); |
|
if(arc_millis > 0){ |
|
arc(x, y, 100, 100, 0, radians(arc_millis)); |
|
} |
|
//yellow part of the clock on top |
|
fill(h); |
|
arc(x, y, 450, 450, PI, 0); |
|
fill(m); |
|
arc(x, y, 350, 350, PI, 0); |
|
fill(s); |
|
arc(x, y, 250, 250, PI, 0); |
|
fill(mil); |
|
arc(x, y, 100, 100, PI, 0); |
|
} } |
|
|
|
} |
|
|
|
//if alarm !== 0, NORMAL CLOCK |
|
else { |
|
//(day) from 6am to 6pm |
|
if((hour>=6) && (hour<18)){ |
|
var hours = map(hour, 6, 18, 0, 180); |
|
if(hours > 0){ |
|
fill(h); |
|
arc(x, y, 450, 450, radians(180), radians(180+hours)); |
|
} |
|
fill(m); |
|
if(minutes > 0){ |
|
arc(x, y, 350, 350, radians(180), radians(180+minutes)); |
|
} |
|
fill(s); |
|
if(seconds > 0){ |
|
arc(x, y, 250, 250, radians(180), radians(180+seconds)); |
|
} |
|
fill(mil); |
|
if(arc_millis > 0){ |
|
arc(x, y, 100, 100, radians(180), radians(180+arc_millis)); |
|
} |
|
//blue part of the clock bellow |
|
fill(h2); |
|
arc(x, y, 450, 450, 0, PI); |
|
fill(m2); |
|
arc(x, y, 350, 350, 0, PI); |
|
fill(s2); |
|
arc(x, y, 250, 250, 0, PI); |
|
fill(mil2); |
|
arc(x, y, 100, 100, 0, PI); |
|
} |
|
|
|
//(night) |
|
else{ |
|
var night; |
|
if (hour > 17) { |
|
night = map(hour, 18, 23, 0, 90); |
|
} |
|
else if(hour <= 5){ |
|
night = map(hour, 0, 5, 90, 180); |
|
} |
|
fill(h2); |
|
if (night > 0) { |
|
arc(x, y, 450, 450, 0, radians(night)); |
|
} |
|
fill(m2); |
|
if(minutes > 0){ |
|
arc(x, y, 350, 350, 0, radians(minutes)); |
|
} |
|
fill(s2); |
|
if(seconds > 0){ |
|
arc(x, y, 250, 250, 0, radians(seconds)); |
|
} |
|
fill(mil2); |
|
if(arc_millis > 0){ |
|
arc(x, y, 100, 100, 0, radians(arc_millis)); |
|
} |
|
//yellow part of the clock on top |
|
fill(h); |
|
arc(x, y, 450, 450, PI, 0); |
|
fill(m); |
|
arc(x, y, 350, 350, PI, 0); |
|
fill(s); |
|
arc(x, y, 250, 250, PI, 0); |
|
fill(mil); |
|
arc(x, y, 100, 100, PI, 0); |
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |