davideriboli
5/14/2017 - 3:44 PM

RandomSquaresOnRectDashboard #processing #creativecoding #futurelearn

RandomSquaresOnRectDashboard #processing #creativecoding #futurelearn

/*     FUTURELEARN       */
/*CREATIVE CODING COURSE*/
/*  Week 2 Exercise 1  */

int caseNum;  // Fait votre jeux: angels or demons?

void setup() {
  size(800, 600);
  rectMode(CORNER);
  noStroke();
  frameRate(1);

  // 1 for an honest but wrong try (angels)
  // 2 for a dirty trick (demons)
  caseNum = 2;
}

void draw() {
  background(180);

  if (caseNum == 1) {

    int gridSize = (int) random(3, 12);
    int gap = (int) random(5, 50);

    // Everything from here was "Xized" and "Yized" so now rects and gaps are proportional to window size.
    // You can change window size as you prefer.
    // Near to be right, I think, but not enough : (

    float cellsizeX = ( width - (gridSize + 1) * gap ) / (float)gridSize;
    float cellsizeY = ( height - (gridSize + 1) * gap ) / (float)gridSize;
    println("cellsizeX = " + cellsizeX);
    println("cellsizeY = " + cellsizeY);

    float offsetX = cellsizeX/16.0;
    float offsetY = cellsizeY/16.0;


    for (int i=0; i<gridSize; i++) {
      for (int j=0; j<gridSize; j++) {

        fill(140, 180); // shadow
        rect(gap * (i+1) + cellsizeX * i + offsetX, gap * (j+1) + cellsizeY * j + offsetY, cellsizeX, cellsizeY);

        fill(247, 57, 57, 180); // rectangle
        rect(gap * (i+1) + cellsizeX * i, gap * (j+1) + cellsizeY * j, cellsizeX, cellsizeY);
      }
    }
    
  } else if (caseNum == 2) {

    int gridSize = 8; // an horrible, devilish trick...

    int gap = (int) random(5, 50);
    float cellsize = ( width - (gridSize + 1) * gap ) / (float)gridSize;
    println("cellsize = " + cellsize);

    float offsetX = cellsize/16.0;
    float offsetY = cellsize/16.0;


    for (int i=0; i<gridSize; i++) {
      for (int j=0; j<gridSize; j++) {

        fill(140, 180); // shadow
        rect(gap * (i+1) + cellsize * i + offsetX, gap * (j+1) + cellsize * j + offsetY, cellsize, cellsize);

        fill(247, 57, 57, 180); // rectangle
        rect(gap * (i+1) + cellsize * i, gap * (j+1) + cellsize * j, cellsize, cellsize);
      }
    }
  }
}