ANDY GILMORE作品を参考にして
繰り返しの例1
この作品を事例に考え方を述べる。
注)忠実な模倣は目指さない
条件:法則性を見出し「for文」を使って造形する。
①部分円として扱う
②arc命令を使う
https://processing.org/reference/arc_.html
まず1つ描く
時計の3時の方角が0ラジアン
(12時の方角から、9時の方角へ描く)
(ただし、y軸が下向きプラスなので、注意)
-π/2からπまで描く
size(1024,1024);
arc(512, 512, 1024, 1024, -HALF_PI, PI, PIE);
次に「コピペして」たくさん描く
size(1024,1024);
arc(512, 512, 1024, 1024, -HALF_PI, PI, PIE);
arc(256, 256, 512, 512, -HALF_PI, PI, PIE);
arc(128, 128, 256, 256, -HALF_PI, PI, PIE);
arc(64, 64, 128, 128, -HALF_PI, PI, PIE);
arc(32, 32, 64, 64, -HALF_PI, PI, PIE);
arc(16, 16, 32, 32, -HALF_PI, PI, PIE);
arc(8, 8, 16, 16, -HALF_PI, PI, PIE);
arc(4, 4, 8, 8, -HALF_PI, PI, PIE);
法則性を見出し、for文に置き換える
プログラムを、じっと見つめて、法則性を見出し、for文に置き換える。
for文に置き換えができれば、繰り返し回数は、何回でも増やせる。
size(1024, 1024);
for (int a=512; a>0; a=a/2) {
arc(a, a, a*2, a*2, -HALF_PI, PI, PIE);
}
png画像で保存する
size(1024, 1024);
for (int a=512; a>0; a=a/2) {
arc(a, a, a*2, a*2, -HALF_PI, PI, PIE);
}
save("image.png");
PDFで保存する
processingでの保存方法はpngなどの画像だけにとどまらない。
プログラムファイルに名前をつけて保存する。
そのフォルダが、PDFファイルの保存先になる。
PDFファイルで保存し、イラストレータで開いて編集してみる。
import processing.pdf.*;
size(1024, 1024, PDF, "filename.pdf");
for (int a=512; a>0; a=a/2) {
arc(a, a, a*2, a*2, -HALF_PI, PI, PIE);
}
exit();
SVGで保存する
SVG(ベクターデータ)でも、保存できる。
import processing.svg.*;
size(1024, 1024);
beginRecord(SVG, "filename.svg");
for (int a=512; a>0; a=a/2) {
arc(a, a, a*2, a*2, -HALF_PI, PI, PIE);
}
endRecord();
繰り返しの例2
円を大きくしながら、左から右へ描画。
円を小さくしながら、右から左へ描画。
size(800, 800);
noStroke();
background(0);
for (int c=0; c<400; c=c+40) {
fill(255-c, 255, c, 50);//R,G,B,A半透明で描画
circle(c, 400, c*2);
fill(255, 255-c, c, 50);
circle(800-c, 400, c*2);
}