はじめに
今回は「美しい幾何学」第18章の挿絵を参考にProcessingで作ります。
リンク
シードオブライフ(Seed Of Life)とは
シードオブライフ(Seed Of Life)とは神聖幾何学模様のひとつです。
シードオブライフは7つの円でできた幾何学模様です。
中央の円を6つの円が囲んでいて、このとき中央の円の中に花が咲いているように見えます。
比較的簡単にProcessingで再現できるのでやってみましょう。
プログラム
プログラムは以下になります。円が重なるピンクの花の部分と緑の葉の部分はarc関数を用いて書きました。円が重なる花と葉は6個あるのでfor文は6回でいいのですが、完全には埋まらなかったので12回for文を回しています。
float r = 100;
void setup() {
size(500, 500);
noLoop();
}
void draw() {
background(getCol3());
translate(width/2, height/2);
stroke(getCol0());
strokeWeight(3);
//6つの円
noFill();
for (float i = 0; i < 5*PI/3; i+=PI/3) {
float x = r * cos(i);
float y = r * sin(i);
ellipse(x, y, r*2, r*2);
}
for (int i = 0; i<12; i++) {
ar2();
rotate(PI/3);
}
fill(getCol6());
ellipse(0, 0, r*2, r*2);
noFill();
ellipse(0, 0, r*4, r*4);
for (int i = 0; i<12; i++) {
ar1();
rotate(PI/3);
}
fill(getCol5());
for (float i = 0; i < 5*PI/3; i += PI/3) {
ellipse(r*cos(i), -r*sin(i), 10, 10);
ellipse(r*2*cos(i), -r*2*sin(i), 15, 15);
}
translate(-width/2, -height/2);
powder();
}
//花
void ar1() {
fill(getCol2());
arc(r, 0, r*2, r*2, PI, 4*PI/3, OPEN);
arc(r*cos(2*PI/3), -r*sin(2*PI/3), r*2, r*2, 0, PI/3, OPEN);
}
//葉
void ar2() {
fill(getCol4(), 50);
arc(r*cos(PI/3), -r*sin(PI/3), r*2, r*2, 2*PI/3, 4*PI/3, OPEN);
arc(r*cos(2*PI/3), -r*sin(2*PI/3), r*2, r*2, -PI/3, PI/3, OPEN);
}
void powder() {
for (int i = 0; i < 800000; i++) {
stroke(random(255), 40);
strokeWeight(0.6);
point(random(width), random(height));
}
}
int[] colors = {#E4CCE0,#B4679F,#B11868,#A78dbd,#ABB627,#EC9C29,#334924};
int getCol0() {
return colors[0];
}
int getCol1() {
return colors[1];
}
int getCol2() {
return colors[2];
}
int getCol3() {
return colors[3];
}
int getCol4() {
return colors[4];
}
int getCol5() {
return colors[5];
}
int getCol6() {
return colors[6];
}
参考文献
・美しい幾何学
リンク
・数学から創るジェネラティブアート
リンク
関連記事
Processingおすすめ本
Processingのおすすめ本を紹介します
コメント