Advertisement
Guest User

Untitled

a guest
Nov 9th, 2013
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. PImage img;
  2. ArrayList<Square> squares = new ArrayList<Square>();
  3. int min = 8; //min size of the square
  4. int index = 0;
  5.  
  6. void setup() {
  7.   img = loadImage("http://a4.mzstatic.com/us/r30/Purple/05/81/e6/mzm.kcjwvjip.jpg");
  8.   size(img.width, img.height);
  9.   background(0);
  10.   cuarto(0, 0, img.width); //recursion
  11. }
  12.  
  13. void draw() {
  14.  
  15.   //stroke(255, 0, 0);
  16.   noStroke();
  17.  
  18.   if (index < squares.size()) {
  19.     squares.get(index).draw();
  20.     index++;
  21.   }
  22.  
  23. }
  24.  
  25. void cuarto(int x, int y, int tam) {
  26.   if (tam >= min) {
  27.     squares.add(new Square(x, y, tam, img.pixels[x+tam/2 + (y+tam/2)*img.width]));
  28.     cuarto(x, y, tam/2);
  29.     cuarto(x+tam/2, y, tam/2);
  30.     cuarto(x, y+tam/2, tam/2);
  31.     cuarto(x+tam/2, y+tam/2, tam/2);
  32.   }
  33. }
  34.  
  35. class Square {
  36.   int x, y;
  37.   int tam;
  38.   color c;
  39.  
  40.   Square(int _x, int _y, int _tam, color _c) {
  41.     x = _x;
  42.     y = _y;
  43.     tam = _tam;
  44.     c = _c;
  45.   }
  46.  
  47.   void draw() {
  48.     fill(c);
  49.     rect(x, y, tam, tam);
  50.   }
  51. }
  52.  
  53. void keyPressed() {
  54.   if (key == '-') {
  55.     if (min > 2) {
  56.       min = min/2;
  57.     }
  58.   }
  59.   if (key == '+') {
  60.     min = min*2;
  61.   }
  62.   println(key+"..."+min); //min size of the square
  63.  
  64.   background(0);
  65.   squares = new ArrayList<Square>();
  66.   cuarto(0, 0, img.width);
  67.   index = 0;
  68. }
  69.  
  70. /* cuatro a la vez
  71.  
  72. int total = squares.size();
  73. for (int i=0; i<4; i++) {
  74.   squares.get(index + i*total/4).draw();
  75.   }
  76. if (index < total/4) index++;
  77.  
  78. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement