mirror of
https://github.com/processing/processing4.git
synced 2026-01-29 03:11:08 +01:00
65 lines
1.4 KiB
Plaintext
65 lines
1.4 KiB
Plaintext
/**
|
|
* Cubic Grid
|
|
* by Ira Greenberg.
|
|
*
|
|
* 3D translucent colored grid uses nested pushMatrix()
|
|
* and popMatrix() functions.
|
|
*/
|
|
|
|
float boxSize = 20;
|
|
float margin = boxSize*2;
|
|
float depth = 400;
|
|
color boxFill;
|
|
|
|
int fcount, lastm;
|
|
float frate;
|
|
int fint = 3;
|
|
|
|
void setup() {
|
|
size(640, 360, P3D);
|
|
frameRate(60);
|
|
noSmooth();
|
|
noStroke();
|
|
}
|
|
|
|
void draw() {
|
|
background(255);
|
|
|
|
hint(DISABLE_DEPTH_TEST);
|
|
|
|
// Center and spin grid
|
|
pushMatrix();
|
|
translate(width/2, height/2, -depth);
|
|
rotateY(frameCount * 0.01);
|
|
rotateX(frameCount * 0.01);
|
|
|
|
// Build grid using multiple translations
|
|
for (float i =- depth/2+margin; i <= depth/2-margin; i += boxSize){
|
|
for (float j =- height+margin; j <= height-margin; j += boxSize){
|
|
for (float k =- width+margin; k <= width-margin; k += boxSize){
|
|
// Base fill color on counter values, abs function
|
|
// ensures values stay within legal range
|
|
boxFill = color(abs(i), abs(j), abs(k), 50);
|
|
pushMatrix();
|
|
translate(k, j, i);
|
|
fill(boxFill);
|
|
box(boxSize, boxSize, boxSize);
|
|
popMatrix();
|
|
}
|
|
}
|
|
}
|
|
popMatrix();
|
|
|
|
hint(ENABLE_DEPTH_TEST);
|
|
|
|
fcount += 1;
|
|
int m = millis();
|
|
if (m - lastm > 1000 * fint) {
|
|
frate = float(fcount) / fint;
|
|
fcount = 0;
|
|
lastm = m;
|
|
println("fps: " + frate);
|
|
}
|
|
fill(0);
|
|
text("fps: " + frate, 10, 20);
|
|
} |