Processing で円を書いてみた。

「ジェネラティブ・アート」(マット・ピアソン著)に出てくる例題サンプルをちょっと書いてみた。


本文は部分的にしか書かれていないので、それを完全化してみました。

117ページに出てくる、らせんを描く例題です。


size(500,300);
background(200);
strokeWeight(5);
smooth();

int centx,centy;

centx=width/2 ;
centy=height/2;

float radius=10;
float x,y;
float lastx=-999;
float lasty=-999;
for (float ang =0;ang <= 1440; ang+=5){

radius += 0.5;
float rad =radians(ang);

//radians converts a degree measurement to its corresponding
// value in radians

x=centx +(radius*cos(rad));
y=centy + (radius*sin(rad));

if(lastx > -999){

line(x,y,lastx,lasty);
}
lastx =x;
lasty =y;
}

実行結果はだいたいこの本に出てくる物と同じです。↓ (117ページを参考にしてください。)

一部なぜか簡単なミスが書かれていたり、この本の著者はかならず中心の位置を出す時は、width,heightで出すことをしつこいくらい推奨するのですが、部分的に拝借した元のソースコードにはそう書かれていなかったので、完璧さを追求するために公開しました。

あと個人的に気になるのは、初期の数値を反映されない−999にすることですね。これはちょっと抵抗あるのですが、他の方法が思いつかないので、そのままにしておきました。

ご拝読ありがとうございます。