54 lines
973 B
Plaintext
54 lines
973 B
Plaintext
int depth = 5;
|
|
int interval = 50;
|
|
|
|
int currentTime;
|
|
int lastTime;
|
|
int progress = 0;
|
|
int lastProgress = 0;
|
|
//int finished = int(pow(3,depth));
|
|
boolean intervalExpired = false;
|
|
|
|
void setup() {
|
|
size(410, 230);
|
|
background(255);
|
|
fill(0);
|
|
lastTime = millis();
|
|
}
|
|
|
|
void draw() {
|
|
currentTime = millis();
|
|
triangle (10, 25, 100, depth);
|
|
}
|
|
|
|
void triangle (int x, int y, int l, int n) {
|
|
if (n == 0) {
|
|
checkIfIntervalExpired();
|
|
if (intervalExpired && progress == lastProgress) {
|
|
text("*", x, y);
|
|
lastProgress++;
|
|
intervalExpired = false;
|
|
}
|
|
progress++;
|
|
} else {
|
|
triangle(x, y+l, l/2, n-1);
|
|
triangle(x+l, y, l/2, n-1);
|
|
triangle(x+l*2, y+l, l/2, n-1);
|
|
}
|
|
}
|
|
|
|
void checkIfIntervalExpired() {
|
|
if (currentTime-lastTime > interval) {
|
|
lastTime = currentTime;
|
|
progress = 0;
|
|
intervalExpired = true;
|
|
}
|
|
}
|
|
|
|
void keyReleased() {
|
|
if (key==' ') { // reset
|
|
progress = 0;
|
|
lastProgress = 0;
|
|
background(255);
|
|
}
|
|
}
|