Generative Art #136
Code
void setup() {
size(840, 840);
pixelDensity(2);
noLoop();
}
void draw() {
background(255);
generate();
powder();
}
void generate() {
for (int i = 0; i < 2000; i ++) {
int b = (int)random(4);
float x = random(width);
float y = random(height);
float size = random(5, 120);
push();
translate(x, y);
rotate(random(TAU));
fill(getCol(), 100);
noStroke();
if (b == 0) {
shape1(size);
} else if (b == 1) {
shape2(size);
} else if (b == 2) {
square(0, 0, size);
} else {
circle(0, 0, size);
}
pop();
}
}
void shape1(float s) {
float hs = s/2;
float[] rs = new float [16];
for (int i = 0; i < rs.length; i ++) {
rs[i] = random(s);
}
beginShape();
vertex(-hs, -hs);
bezierVertex(-rs[0]/2, -rs[1], rs[2]/2, -rs[3], hs, -hs);
bezierVertex(rs[4], -rs[5]/2, rs[6], rs[7]/2, hs, hs);
bezierVertex(rs[8]/2, rs[9], -rs[10]/2, rs[11], -hs, hs);
bezierVertex(-rs[12], rs[13]/2, -rs[14], -rs[15]/2, -hs, -hs);
endShape();
}
void shape2(float s) {
float hs = s/2;
float[] rs = new float [16];
for (int i = 0; i < rs.length; i ++) {
rs[i] = random(hs);
}
beginShape();
vertex(0, -hs);
bezierVertex(rs[0], -hs, hs, -rs[1], hs, 0);
bezierVertex(hs, rs[2], rs[3], hs, 0, hs);
bezierVertex(-rs[4], hs, -hs, rs[5], -hs, 0);
bezierVertex(-hs, -rs[6], -hs, -rs[7], 0, -hs);
endShape();
}
void powder() {
for (int i = 0; i < 800000; i ++) {
stroke(getCol(), 30);
strokeWeight(0.6);
point(random(width), random(height));
}
}
void mousePressed() {
redraw();
}
void keyPressed() {
if (key == 's')saveFrame("####.png");
}
int[] colors = {#006e90, #f18f01, #adcad6, #99c24d, #41bbd9};
//int[] colors = {#5BC3EB, #ef5d60, #ec4067, #a01a7d, #311847};
int getCol() {
return colors[(int)random(colors.length)];
}
Happy coding!
応援してくださる方!いつでもサポート受け付けてます!