Mod:Coding Challenge #30: Phyllotaxis
29が重すぎたので一旦飛ばした。Phyllotaxis、葉序とか言われる、茎上の葉の配び方の研究のことみたい。やってる事自体は数式があってそのパターンでひまわりの種子の配列のようなものを描くというもの。そこまで難しくなかったというか、式をコードにするのに抵抗がなくなってきたのかもしれない。15行版も書いた。
http://algorithmicbotany.org/papers/abop/abop-ch4.pdf
コード
float c = 5, n = 0; // setup関数 : 初回1度だけ実行される void setup() { size(960, 540); // ウィンドウサイズを960px,540pxに colorMode(HSB, 360, 100, 100); // HSBでの色指定にする smooth(); // 描画を滑らかに background(220, 20, 20); } // draw関数 : setup関数実行後繰り返し実行される void draw() { translate(width/2, height/2); float theta = radians(137.5) * n; float r = c/2 * sqrt(n); float x = cos(theta) * r; float y = sin(theta) * r; fill(degrees(theta*1.02)%360, 80, 100); noStroke(); ellipse(x, y, c-1, c-1); n++; } void mousePressed() { background(220, 20, 20); n = 0; }