27. Oktober 2011
Meine Uhr wird anhand von drei Kreisen, welche sich auf einem unterliegenden Ziffernblatt drehen, visualisiert. Der grösste Kreis stellt die Sekunden, der Mittlere die Minuten und der Kleinste die Stunden dar. Da durch die Wahl des 12-ziffrigen Ziffernblattes .am und .pm nicht ablesbar ist, integrierte ich die Bildschirmfarbe in die Darstellung mit ein. So ist diese bei Beginn des Tages weiss und am Ende schwarz. Mein Code:<pre>PShape vorlage_uhr; PShape vorlage_uhr_2; PImage vorlage_uhr_3; PImage gruen; PImage blau; PImage dunkelblau; float rotAngle = 0.0; void setup() { size(510,500); smooth(); // lade die svg files vorlage_uhr = loadShape("./images/vorlage_uhr.svg"); vorlage_uhr_2 = loadShape("./images/vorlage_uhr_2.svg"); vorlage_uhr_3 = loadImage("./images/vorlage_uhr_3.png"); gruen = loadImage("./images/gruen.png"); blau = loadImage("./images/blau.png"); dunkelblau = loadImage("./images/dunkelblau.png"); //frameRate(1); } void draw() { //seconds background(255-(hour()*(255/24))); //noStroke(); //fill(44,219,98); //ellipse(165,175,250,250); image(gruen,165,175,250,250); pushMatrix(); translate(165,175); rotate(radians(6)*second()); shapeMode(CENTER); shape(vorlage_uhr,0,0,250,250); popMatrix(); //minutes image(blau,377,251.5,194,194); //noStroke(); //fill(50,98,227); //ellipse(377,250.5,200,200); pushMatrix(); translate(377,251.5); rotate(radians(6)*minute()); shapeMode(CENTER); shape(vorlage_uhr_2,0,0,200,200); popMatrix(); //hours //noStroke(); //fill(21,61,100); //ellipse(240.5,361,148,148); image(dunkelblau,241,361.5,144,144); pushMatrix(); translate(241,361.5); rotate(radians(30)*hour()); imageMode(CENTER); image(vorlage_uhr_3,0,0,150,150); popMatrix(); }