En tråd i tid (7 / 7 steg)
Steg 7: Start att koden
1. importera bibliotek och ställa in globala variabler
importera Minim
import ddf.minim.*;
ställa in ljud variabler
Minim minim;
AudioPlayer låten;
PImage img;
int lastSecond = 0;
int lastMinute = 0;
int lastHour = 0;
x och y samordna av punkten i img för att få den punkt färg
float cx;
flyta cy;
2. initiera skiss
void setup() {
initiera skärmen
storlek (600, 780);
Background(255);
IMG = loadImage("skyColor.jpg");
initiera ljud
Minim = nya Minim(this);
Detta laddar bell.mp3 från datamappen
Låt = minim.loadFile("bell.mp3");
int h=hour();
int s=second();
int m=minute();
Rita timmars trådar alread passerade idag
för (int y = 780, jag = 1; y > = 780-7,5 * h; y-= 7.5, i ++) {
för (int x = 0; x < = 600; x+= 5) {
färg i trådar med färgen fick från img med map() metoden
CX = 60.
CY = karta (i, 1, 20, 24, 980);
färg c = img.get(int(cx), int(cy));
om ((x%10) == 0) {
strokeWeight(2.5);
kurva (x, y, x, y, x + 4, y + 3 x + 4, y + 3);
stroke (c, 200).
}
annat {
kurva (x, y, x, y, x + 4, y-3, x + 4, y-3);
}
}
}
Rita minuters trådar redan passerat i aktuell timme
för (float y = 780-h * 7,5; y > 780-h*7.5-(m-1)*10;y-=10) {
för (int x = 0; x < = 600; x+= 10) {
färg trådar med färgen från img med map() metoden
CX = karta (m, 1, 1, 60, 120);
CY = karta (h, 1, 20, 24, 980);
färg c = img.get(int(cx), int(cy));
om ((x%20) == 0) {
strokeWeight(4);
kurva (x, y, x, y, x + 7, y + 7, x + 7, y + 7);
stroke (c, 102).
}
annat {
kurva (x, y, x, y, x + 7, y-7, x + 7, y-7);
}
}
}
Rita sekunder trådar redan passerat i aktuell minut
för (int x = 0; x < s * 10; x+= 10) {
färg trådarna med hjälp av färgen från img med map() metoden
CX = karta (m, 1, 60, 10, 120);
CY = karta (h, 1, 20, 24, 980);
färg c = img.get(int(cx), int(cy));
float y=780-h*7.5-(m-1)*10;//the y-koordinaten för startpunkten för varje andra kort linje
om ((x%20) == 0) {
strokeWeight(4);
kurva (x, y, x, y, x + 7, y + 7, x + 7, y + 7);
stroke (c, 102).
}
annat {
kurva (x, y, x, y, x + 7, y-7, x + 7, y-7);
}
}
}
3. börja animation loop
void draw() {
få den timme, minut och andra siffror från OS
int s=second();
int m=minute();
int h=hour();
få 24 färger för varje timme tråd från img map() metoden
CX = karta (m, 1, 1, 60, 12);
CY = karta (h, 1, 20, 24, 980);
färg c = img.get(int(cx), int(cy));
caculate x och y-koordinaten för startpunkten av varje kort linje
int px = s * 10;
flyta py = 780-h * 7.5-(m-1) * 10;
Rita en kort linje varje sekund
om (s! = lastSecond) {
om ((s%2) == 0) {
strokeWeight(4);
kurva (px, py, px, py, px + 7, py + 7, px + 7, py + 7), //draw en kort linje varje sekund
stroke (c, 102). färg kort linje med färgen från img
}
annat {
strokeWeight(4);
kurva (px, py, px, py, px + 7, py-7, px + 7, py-7);
}
lastSecond = s;
}
Minuters alla trådar (tjocka linjer) är försvann när en timme passerar
om (s == 59 & & m == 59) {
Song.Play (0), //play ljud varje 60 minuter passerar
noStroke();
rect (0, 0, 620, 780-h * 7,5); använda en rektangel för att "rensa" de tjocka trådarna i den övre delen av fönstret
}
}