We are about to switch to a new forum software. Until then we have removed the registration on this forum.
So i have a school project for tomorow but i dont know how to make clocks with different time zones and i dont really have much time so i would appreciate any help making three digital clocks in each corner with different time zones. Here is the code.
PImage bg;
int y;
int cx, cy;
float secondsRadius;
float minutesRadius;
float hoursRadius;
float clockDiameter;
int timer;
int minutter;
int sekunder;
void setup() {
size(480, 360);
stroke(255);
size(480, 360);
bg = loadImage("cityday.jpg");
int radius = min(width, height) / 2;
secondsRadius = radius * 0.72;
minutesRadius = radius * 0.60;
hoursRadius = radius * 0.50;
clockDiameter = radius * 1.8;
cx = width / 2;
cy = height / 2;
}
void draw() {
background(bg);
if (sekunder == 10) {
bg = loadImage("skyline.jpg");
}
if (sekunder == 15) {
bg = loadImage("cityday.jpg");
}
stroke(226, 204, 0);
y++;
if (y > height) {
y = 0;
}
timer = hour();
minutter = minute();
sekunder = second();
fill(#40ff00);
textSize(32);
text(timer +":" + minutter + ":" + sekunder, 20, 30);
fill(80);
noStroke();
ellipse(cx, cy, clockDiameter, clockDiameter);
float s = map(second(), 0, 60, 0, TWO_PI) - HALF_PI;
float m = map(minute() + norm(second(), 0, 60), 0, 60, 0, TWO_PI) - HALF_PI;
float h = map(hour() + norm(minute(), 0, 60), 0, 24, 0, TWO_PI * 2) - HALF_PI;
stroke(255);
strokeWeight(1);
line(cx, cy, cx + cos(s) * secondsRadius, cy + sin(s) * secondsRadius);
strokeWeight(2);
line(cx, cy, cx + cos(m) * minutesRadius, cy + sin(m) * minutesRadius);
strokeWeight(4);
line(cx, cy, cx + cos(h) * hoursRadius, cy + sin(h) * hoursRadius);
strokeWeight(2);
beginShape(POINTS);
for (int a = 0; a < 360; a+=6) {
float angle = radians(a);
float x = cx + cos(angle) * secondsRadius;
float y = cy + sin(angle) * secondsRadius;
vertex(x, y);
}
endShape();
}
Answers
Thanks for the help @Chrisir but is it possible to make all those digital clocks in one square and remove the normal clocks. And what country or city the time zones are.
Homework, please avoid full answers.
Do you see what he's done? Made a method to print one clock and called it three times with different offsets.
For digital clocks you just need to print the time. Use text(). And nf() to add leading zeroes.
Could someone please give me an easy explenation of how to do different time zones i cant figure it out.
???
It's all in my example
Just strip it down and kill what is not needed
Post your attempt
The thing is that i have to explain my code at school so i need to understand what the code does and stuff and i dont understand barely any of your code. Mostly because its our first year with programming. So i would like to know if there is a command that u can type in to do a offset from the time that is on my computer.
I really want to know how to do this code:
clock (hour()-6, -490);
without to much extra code to do it. Because i tried it and i really couldnt get it to workPost what you have.
And don't load images in draw - draw runs 60 times a second and load image is expensive.
what I did was that I moved your clock into a function.
It is the block from
Think of a function as a small factory. This factory shows a clock. You can also pass parameters to the clock.
I pass
hour()-6
orhour()
orhour()+6
to it. This value gets into the variabletimer
(name from your original code) and is used then in the function. That's how we get our time zones!!!Just call the same function 3 times with different values for the hours.
I also pass -490, 0 and 490 as a 2nd parameter to the function, to determine where this clock has to be drawn on the screen.
I use
pushMatrix
/popMatrix
to isolate the drawing of each clock from the others and thentranslate
to move it left by 490, or right by 490 or not at all (0).Since this is homework, it would be cheating, if I did that for you
Invent a additional parameter
city
and pass it to the function"Amsterdam"
or "New York"
I want you to do that and post your resulting sketch.
Just show SOME code.
that's what I did with
clock (hour()-6, -490);
hour()
is the time on your computer andhour()-6
is 6 times zones east / 6 hours backI appreciate all the help i got but i dont have more time left so it is what it is. I hope i can remember what all the different codes do.
But atleast i know all this next time im making something.
And i understand that u cant just give the perfect finished code to me. That is cheating.