#include "svg.h"

int hue = 0;
int n = 5;    /* 子供の個数: 2--6 程度 */
        
void generate(int d, double x, double y, double len) {
    int i;
    if (d<=0) return;

    stroke(hsb360(hue, 100, 100));    
    hue += 15;             /* 色相の変化 */
    ellipse(x, y, len, len);
    for (i=0; i<n; i++) {
        double s = sin360(180.0/n);
                        
        generate(d-1, x+len/2/(1+s)*sin360(360.0/n*i), y-len/2/(1+s)*cos360(360.0/n*i), len*s/(1+s));
    }
}

int main(void) {
    start();
    rulers();

    strokeWeight(0.5);
    noFill();
    translate(centerX(), centerY());
    //      scale(1.414, 1);

    generate(5 /* 深さ */, 0, 0, pageHeight()/1.5);

    finish();
    return 0;
}
