topical media & game development

talk show tell print

graphic-processing-learning-15-example-15-15-example-15-15.pde / pde



  // Learning Processing
  // Daniel Shiffman
  // http://www.learningprocessing.com
  
  // Example 15-15: 2D image mapped to 3D
  
  PImage img;       // The source image
  int cellsize = 2; // Dimensions of each cell in the grid
  int cols, rows;   // Number of columns and rows in our system
  
  void setup() {
    size(200,200,P3D);
    img = loadImage( "sunflower.jpg" ); // Load the image
    cols = width/cellsize;              // Calculate # of columns
    rows = height/cellsize;             // Calculate # of rows
  }
  
  void draw() {
    background(255);
    img.loadPixels();
  
    // Begin loop for columns
    for (int i = 0; i < cols; i++ ) {
      // Begin loop for rows
      for (int j = 0; j < rows; j++ ) {
        int x = i*cellsize + cellsize/2; // x position
        int y = j*cellsize + cellsize/2; // y position
        int loc = x + y*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])- 100.0;
  
        // Translate to the location, set fill and stroke, and draw the rect
        pushMatrix();
        translate(x,y,z); 
        fill(c);
        noStroke();
        rectMode(CENTER);
        rect(0,0,cellsize,cellsize);
        popMatrix();
  
      }
    }
  }
  


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.