見出し画像

Generative Art #3

前にOpenProcessingに投稿したもの ( https://www.openprocessing.org/sketch/704431 ) を使いまわしつつ,ちょいアレンジ.回転やスケール加えるだけでも違った雰囲気になる.

画像1

画像2

画像3

void setup() {
 size(800, 800);
 
 background(0);
 rectMode(CENTER);
 
 drawPattern();
}

void draw() {
 
}

void drawPattern() {
 float sf = random(1.5, 2.0);
 float rot = random(TWO_PI);
 
 translate(width / 2.0, height / 2.0);
 scale(sf, sf);
 rotate(rot);
 
 recur(new PVector(0.0, 0.0), width, 0);
}

void recur(PVector p, float s, int d) {
 if (d > 1 && random(1) < float(d) / 8) {
   colorMode(HSB, 360, 255, 255);
   
   float hue = 360 / 8.0 * random(8);
   int n = 10;
   for (int k = 0; k < n; k++) {
     fill(hue, 255.0 / n * (n - k), 255);
     noStroke();
     rect(p.x, p.y, s / n * (n - k), s / n * (n - k));
   }
   colorMode(RGB, 255, 255, 255);
 } else {
   fill(0);
   stroke(255);
   
   recur(new PVector(p.x + s / 4.0, p.y + s / 4.0), s / 2.0, d + 1);
   recur(new PVector(p.x - s / 4.0, p.y + s / 4.0), s / 2.0, d + 1);
   recur(new PVector(p.x + s / 4.0, p.y - s / 4.0), s / 2.0, d + 1);
   recur(new PVector(p.x - s / 4.0, p.y - s / 4.0), s / 2.0, d + 1);
 }
}

static final String timestamp(final String name, final String ext) {
return name + "-" + year() + nf(month(), 2) + nf(day(), 2) +
  "-" + nf(hour(), 2) + nf(minute(), 2) + nf(second(), 2) + ext;
}

void mouseReleased() {
 drawPattern();
}

void keyReleased() {
 saveFrame(String.format("frames/%s", timestamp("Project", ".png")));
}

いただいたサポートは主にクリエイターとしての活動費になります