var p:Array;
var edaLength:Array;
var r:Number;

[setup, 400, 400]{
r = 4;
p = new Array();
edaLength = new Array();
for(var i=0; i < 10; ++i){
p[i] = new point(random()*400, random()*400);
edaLength[i] = new point(0, 0);
}
}

[paint]{
clearAll();
setPenSize(2);
for(var i=0; i < p.length; ++i){
var rr:Number = (i+1)*r;
drawCurve(p[i].x-rr, p[i].y, p[i].x-edaLength[i].x, p[i].y-edaLength[i].y, p[i].x, p[i].y-rr);
drawCurve(p[i].x+rr, p[i].y, p[i].x+edaLength[i].x, p[i].y-edaLength[i].y, p[i].x, p[i].y-rr);
drawCurve(p[i].x-rr, p[i].y, p[i].x-edaLength[i].x, p[i].y+edaLength[i].y, p[i].x, p[i].y+rr);
drawCurve(p[i].x+rr, p[i].y, p[i].x+edaLength[i].x, p[i].y+edaLength[i].y, p[i].x, p[i].y+rr);
}
}

[always]{
for(var i=0; i < p.length; ++i){
if(i == 0) p[i].pushTo(mouse);
else p[i].pushTo(p[i-1], 15);
}

}

[everyterm, 5, 10, 5]{
for(var i=0; i < edaLength.length; ++i){
edaLength[i].pushTo((i+1)*r, (i+1)*r);
}
}

[everyterm, 5, 10]{
for(var i=0; i < edaLength.length; ++i){
edaLength[i].pushTo(0, 0);
}
}