ProcessingでGenerative art #82
Code
int actRandomSeed = 0;
int num = 15;
float[] x = new float[num];
float[] y = new float[num];
float rectSize;
void setup() {
size(800, 800);
pixelDensity(2);
colorMode(HSB, 360, 100, 100, 100);
for (int i = 0; i < num; i ++) {
x[i] = map(i, 0, num, 0, width);
y[i] = map(i, 0, num, 0, height);
}
rectSize = (width/num) - 5;
}
void draw() {
randomSeed(actRandomSeed);
//background(0);
background(360);
tile();
drawTriangle();
}
void drawTriangle() {
beginShape(TRIANGLES);
for (int i = 0; i < 9; i ++) {
noFill();
fill(randomColor(), 20);
stroke(randomColor());
vertex(x[(int)random(0, num-1)] + rectSize/2, y[(int)random(0, num-1)] + rectSize/2);
}
endShape();
}
void tile() {
stroke(0);
for (int j = 0; j < num; j ++) {
for (int i = 0; i < num; i ++) {
noFill();
stroke(randomColor());
rect(x[i], y[j], rectSize, rectSize);
fill(randomColor());
noStroke();
drawShape(x[i], y[j], rectSize);
noStroke();
fill(randomColor());
ellipse(x[i] + rectSize/2, y[j] + rectSize/2, 5, 5);
}
}
}
void drawShape(float posX, float posY, float size) {
float halfSize = size/2;
pushMatrix();
translate(posX + halfSize, posY + halfSize);
if (random(1) > 0.8) {
rotate(HALF_PI*int(random(2)));
stroke(randomColor());
line(-halfSize, -halfSize, halfSize, halfSize);
} else if (random(1) > 0.6) {
noStroke();
rotate(HALF_PI*int(random(4)));
arc(0, -halfSize, size, size, 0, PI);
} else if (random(1) > 0.4) {
noStroke();
rotate(HALF_PI*int(random(4)));
arc(-halfSize, -halfSize, size*2, size*2, 0, HALF_PI);
} else if (random(1) > 0.2) {
ellipse(0, 0, size, size);
}
popMatrix();
}
color randomColor() {
float r = random(1);
if (r > 0.83) return color(0, 100, 100);
else if (r > 0.66) return color(72, 100, 100);
else if (r > 0.50) return color(144, 100, 100);
else if (r > 0.34) return color(216, 100, 100);
else if (r > 0.18) return color(288, 100, 100);
else return color(0);
}
void mousePressed() {
actRandomSeed = (int)random(100000);
for (int i = 0; i < num; i ++) {
x[i] = map(i, 0, num, 0, width);
y[i] = map(i, 0, num, 0, height);
}
}
void keyPressed() {
if (key == 's')saveFrame("####.png");
}
Happy coding!!
応援してくださる方!いつでもサポート受け付けてます!