Here is my program:
PImage img0;
PImage img1;
PImage img2;
PImage img3;
ArrayList images;
int width = 1280;
int height = 850;
void setup() {
size(1280, 850);
noFill();
stroke(255);
frameRate(15);
images = new ArrayList();
img0 = loadImage(“cat.jpg”);
img1 = loadImage(“cat.jpg”);
img2 = loadImage(“cat.jpg”);
img3 = loadImage(“cat.jpg”);
img0.resize(img0.width / 2, img0.height / 2);
img1.resize(img1.width / 2, img1.height / 2);
img2.resize(img2.width / 2, img2.height / 2);
img3.resize(img3.width / 2, img3.height / 2);
images.add(img0);
images.add(img1);
images.add(img2);
images.add(img3);
}
void draw() {
set(0, 0, images.get(0));
set(0, height / 2, images.get(1));
set(width / 2, 0, images.get(2));
set(width / 2, height / 2, images.get(3));
}
Here is the code I want to add
/**
- Explode
- by Daniel Shiffman.
- Mouse horizontal location controls breaking apart of image and
- Maps pixels from a 2D image into 3D space. Pixel brightness controls
- translation along z axis.
*/
PImage img; // The source image
int cellsize = 2; // Dimensions of each cell in the grid
int columns, rows; // Number of columns and rows in our system
void setup() {
size(640, 360, P3D);
img = loadImage(“cat2.jpg”); // Load the image
columns = img.width / cellsize; // Calculate # of columns
rows = img.height / cellsize; // Calculate # of rows
}
void draw() {
background(0);
// Begin loop for columns
for ( int i = 0; i < columns; i++) {
// Begin loop for rows
for ( int j = 0; j < rows; j++) {
int x = icellsize + cellsize/2; // x position
int y = jcellsize + cellsize/2; // y position
int loc = x + y*img.width; // Pixel array location
color c = img.pixels[loc]; // Grab the color
// Calculate a z position as a function of mouseX and pixel brightness
float z = (mouseX / float(width)) * brightness(img.pixels[loc]) - 20.0;
// Translate to the location, set fill and stroke, and draw the rect
pushMatrix();
translate(x + 200, y + 100, z);
fill(c, 204);
noStroke();
rectMode(CENTER);
rect(0, 0, cellsize, cellsize);
popMatrix();
}
}
}