size(640, 360, P3D);
background(0);
lights();
noStroke();
pushMatrix();
translate(130, height/2, 0);
rotateY(1.25);
rotateX(-0.4);
box(100);
popMatrix();
noFill();
stroke(255);
pushMatrix();
translate(500, height*0.35, -200);
sphere(280);
popMatrix();
example2:
int gridSize = 50;
void setup(){
size(640,360,P3D);
fill(204, 204, 10);
}
void draw() {
background(0);
lights();
for (int i = 0+gridSize/2; i< width; i += gridSize)
for (int j = 0+gridSize/2; j< height; j+= gridSize)
{
pushMatrix();
translate(i, j, 0);
// rotateY(frameCount/5);
rotateX(frameCount/7);
noStroke();
box(20);
popMatrix();
}
}
Example3, cube rotation + 2D array
float[][] rotateRates;
int gridSize = 50;
void setup(){
size(640,360,P3D);
rotateRates = new float[width][height];
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
rotateRates[x][y] = random(2.0, 40.0);
}
}
fill(204, 204, 10);
}
void draw() {
background(0);
lights();
for (int i = 0+gridSize/2; i< width; i += gridSize)
for (int j = 0+gridSize/2; j< height; j+= gridSize)
{
pushMatrix();
translate(i, j, 0);
// rotateY(frameCount/5);
// rotateX(frameCount/7);
rotateX(frameCount/rotateRates[i][j]);
noStroke();
box(20);
popMatrix();
}
}
Examples 4:
float[][] rotateRates;
int gridSize = 50;
void setup(){
size(640,360,P3D);
rotateRates = new float[width][height];
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
rotateRates[x][y] = random(5.0, 40.0);
}
}
fill(204, 204, 10);
}
void draw() {
background(0);
lights();
for (int i = 0+gridSize/2; i< width; i += gridSize)
for (int j = 0+gridSize/2; j< height; j+= gridSize)
{
pushMatrix();
translate(i, j, sin(frameCount/20.0)*20.0);
// rotateY(frameCount/5);
// rotateX(frameCount/7);
rotateX(frameCount/rotateRates[i][j]);
noStroke();
box(20);
popMatrix();
}
}
example 5: using sin
float[][] rotateRates;
int gridSize = 50;
void setup(){
size(640,360,P3D);
rotateRates = new float[width][height];
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
rotateRates[x][y] = random(5.0, 40.0);
}
}
fill(204, 204, 10);
}
void draw() {
background(0);
lights();
for (int i = 0+gridSize/2; i< width; i += gridSize)
for (int j = 0+gridSize/2; j< height; j+= gridSize)
{
pushMatrix();
translate(i, j, sin((frameCount/10.0)%width+i)*50.0);
// rotateY(frameCount/5);
// rotateX(frameCount/7);
rotateX(frameCount/rotateRates[i][j]);
noStroke();
box(20);
popMatrix();
}
}
References:
https://processing.org/tutorials/p3d/
沒有留言:
張貼留言