ProcessingでGenerative art #86
Code
int actRandomSeed = 0;
float colHue;
float circleSize = 400;
void setup() {
size(800, 800);
pixelDensity(2);
colorMode(HSB, 360, 100, 100, 100);
}
void draw() {
randomSeed(actRandomSeed);
background(333, 7, 100);
drawCircles(200, 200, circleSize);
drawCircles(width - 200, 200, circleSize);
drawCircles(200, height-200, circleSize);
drawCircles(width - 200, height-200, circleSize);
}
void drawCircles(float posX, float posY, float diameter) {
float w = map(diameter, circleSize, 1, 2, 0.5);
pushMatrix();
fill(randomColor());
stroke(0);
strokeWeight(w);
float randomDiameter = random(diameter);
translate(posX, posY);
ellipse(0, 0, diameter, diameter);
if (diameter > 100) {
rotate(random(PI));
pushMatrix();
drawCircles(0 - (diameter - randomDiameter)/2, 0, randomDiameter);
popMatrix();
drawCircles(0 - diameter/2 + randomDiameter + (diameter - randomDiameter)/2, 0, diameter - randomDiameter);
}
popMatrix();
}
color randomColor() {
float r = random(1);
float alph = 80;
if (r > 6.0/7.0) return color(0, 100, 100, alph);
else if (r > 5.0/7.0) return color(37, 100, 100, alph);
else if (r > 4.0/7.0) return color(55, 100, 100, alph);
else if (r > 3.0/7.0) return color(216, 100, 100, alph);
else if (r > 2.0/7.0) return color(318, 100, 100, alph);
else if (r > 1.0/7.0) return color(360, alph);
else return color(0, alph);
}
void mousePressed() {
actRandomSeed = (int)random(100000);
}
void keyPressed() {
if (key == 's')saveFrame("####.png");
}
Happy coding!
応援してくださる方!いつでもサポート受け付けてます!