Processing Recursion#2 Circles

p.203 Recursive ellipses;

by schrodingers

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/processing.js/1.4.15/processing.js"></script>
<canvas></canvas>

CSS

body {
    overflow: hidden;
    margin: 0;
    padding: 0;
}
</style> <script type="text/javascript"> window.addEventListener('load', function() {
    var scripts=document.body.getElementsByTagName('script');
    var canvases=document.body.getElementsByTagName('canvas');
    new Processing(canvases[0], scripts[0].text);
}
, false);
 // Here prevent javascript in body from throwing error </script> <style>

JavaScript

/* 
 title: p203 Recursion#2 (Circles)
 date: 2015-07-23
 */

int x = 0;
int y = 0;
int r = 150; // radius


void setup() {
    size(800, 600);
    smooth(8);
    noStroke();
    noLoop();
}
void draw() {
    translate(width / 2, height / 2);
    drawCircle(x, r, 10);
}

void drawCircle(int x, int r, int num) {
    color col = 151 * num / 8.07;
    fill(num, 140, 222, 80);
    ellipse(x, y, r * 2, r * 2);
    rotate(PI / 2.05);

    if (num > 1) {
        drawCircle(x - r / 2, r / 2, num - 1);
        drawCircle(x + r / 2, r / 2, num - 1);

    }
}