xxxxxxxxxx
// make accessible to DPD 2025: Complexity I
// schien@mail.ncku.edu.tw
// recreation of demos in the book "Generative Design" (http://www.generative-gestaltung.de/1/)
// P.2.1.3
// Complex modules in a grid: circles
// based on P_2_1_3_01.pde
// interactions
// Mouse: click: regen
// Keys: s: save png
//
// For DPD 2023: Emergence in a grid
// schien@mail.ncku.edu.tw, 20230425
let tileCount = 10;
let actRandomSeed = 0;
let baseModule = 0;
let topModule = 10;
function setup() {
createCanvas(500, 500);
baseModule = width/tileCount;
}
function draw() {
translate(baseModule/2, baseModule/2);
background(255);
randomSeed(actRandomSeed);
for (let gridY=0; gridY<tileCount; gridY++) {
for (let gridX=0; gridX<tileCount; gridX++) {
push();
translate(baseModule*gridX, baseModule*gridY);
let toggle = int(random(0, 4));
rotate(toggle*HALF_PI);
for (let i=0; i<5; i++) {
let diameter = map(i, 0, 4, baseModule, topModule);
let offset = map(i, 0, 4, 0, (baseModule-topModule)/2);
circle(offset, 0, diameter);
}
pop();
}
}
}
function mousePressed() {
actRandomSeed = int(random(100000));
}
function keyPressed() {
if (key === 's' || key === 'S') {
save('circles.png');
}
}