Generative Art #127
Code
void setup() {
size(840, 840);
pixelDensity(2);
noLoop();
rectMode(CENTER);
}
void draw() {
translate(-10, -10);
hexTile();
powder();
}
void powder() {
for (int i = 0; i < 500000; i ++) {
stroke(255, 60);
strokeWeight(0.5);
point(random(width), random(height));
}
}
void hexTile() {
int c = 5;
float s = width/c;
for (int i = 0; i <= c + 1; i ++) {
for (int j = 0; j <= c; j ++) {
hexagon(j * s * 1.5, i * s * cos(radians(30)), s);
}
for (int j = 0; j <= c; j ++) {
hexagon((j * s * 1.5) + s * 0.75, i * s * cos(radians(30)) + s * cos(radians(30))/2, s);
}
}
}
void hexagon(float x, float y, float s) {
float r = s*0.5 + 1;
push();
translate(x, y);
for (int i = 0; i < 6; i ++) {
noStroke();
fill(getCol());
beginShape();
vertex(0, 0);
vertex(r * cos(TAU/6), r * sin(TAU/6));
vertex(r * cos(2 * TAU/6), r * sin( 2 * TAU/6));
endShape();
float y_ = (0 + s/2 * sin(TAU/6) + s/2 * sin( 2 * TAU/6))/3;
pattern(0, y_, s/2);
rotate(radians(60));
}
pop();
}
void pattern(float x, float y, float s) {
float a = TAU/3;
float ss = s * 0.3 - 1;
push();
translate(x, y);
noStroke();
fill(getCol());
if (random(1) > 0.75) {
circle(0, 0, s/2);
} else if (random(1) > 0.50) {
beginShape();
vertex(ss * cos(radians(30) + a), ss * sin(radians(30) + a));
vertex(ss * cos(radians(30) + a * 2), ss * sin(radians(30) + a * 2));
vertex(ss * cos(radians(30) + a * 3), ss * sin( radians(30) + a * 3));
endShape(CLOSE);
} else if (random(1) > 0.25) {
rotate(PI);
beginShape();
vertex(ss * cos(radians(30) + a), ss * sin(radians(30) + a));
vertex(ss * cos(radians(30) + a * 2), ss * sin(radians(30) + a * 2));
vertex(ss * cos(radians(30) + a * 3), ss * sin( radians(30) + a * 3));
endShape(CLOSE);
} else {
stroke(getCol());
strokeWeight(s*0.1);
line(0, 0, ss * cos(radians(30) + a), ss * sin(radians(30) + a));
line(0, 0, ss * cos(radians(30) + a * 2), ss * sin(radians(30) + a * 2));
line(0, 0, ss * cos(radians(30) + a * 3), ss * sin( radians(30) + a * 3));
}
pop();
}
void mousePressed() {
redraw();
}
void keyPressed() {
if (key == 's')saveFrame("####.png");
}
int[] colors = {#ea7af4, #b43e8f, #6200b3, #3b0086, #55CE70};
int getCol() {
return colors[(int)random(colors.length)];
}
この前六角形のタイリングを作ったので今度は三角形のタイリング。
最初は一から三角形を作ってならべてたのだが、いじってる時に僕は気付いてしまったのだッ!
六角形のなかに三角形が6つ並んでことにッ!
中身は4パターンをランダムに表示。
Happy coding!!
応援してくださる方!いつでもサポート受け付けてます!