ProcessingでGenerative art #52
Code
int tileCount = 10;
int actRandomSeed = 0;
float maxDist;
void setup() {
size(750, 750);
pixelDensity(2);
strokeWeight(0.5);
noFill();
stroke(0, 50);
maxDist = sqrt(sq(width)+sq(height));
}
void draw() {
background(255);
randomSeed(actRandomSeed);
drawTile();
}
void drawTile() {
translate(width/tileCount/2, height/tileCount/2);
for (int gridY = 0; gridY< tileCount; gridY++) {
for (int gridX = 0; gridX< tileCount; gridX++) {
int posX = width/tileCount * gridX;
int posY = height/tileCount * gridY;
drawCircle(posX, posY, width/tileCount);
}
}
}
void drawCircle(float posX, float posY, float d) {
pushMatrix();
translate(posX, posY);
float angle = map(dist(mouseX, mouseY, posX, posY), 0, maxDist, 15, 180);
float num = map(dist(mouseX, mouseY, posX, posY), 0, maxDist, d/4, d/2);
float diameter = map(dist(mouseX, mouseY, posX, posY), 0, maxDist, 250, 1);
for (float i = d/2; i > 0; i -= random(num)) {
for (float theta = 0; theta < TWO_PI; theta += radians(angle)) {
float x = i * cos(theta);
float y = i * sin(theta);
ellipse(x, y, diameter, diameter);
}
}
popMatrix();
}
void mousePressed() {
redraw();
actRandomSeed = (int) random(100000);
}
void keyPressed() {
if (key == 's')saveFrame("####.png");
}
Happy Coding!
参考: 『Generative Design-Processingで切り拓く、デザインの新たな地平』
応援してくださる方!いつでもサポート受け付けてます!