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);
}
}
}
}