var p, moto:Array;

[setup]{
moto = new Array();
moto[0] = new point(200, 100);
moto[1] = new point(250, 150);
moto[2] = new point(300, 200);
moto[3] = new point(250, 250);
moto[4] = new point(200, 300);
moto[5] = new point(150, 250);
moto[6] = new point(100, 200);
moto[7] = new point(150, 150);

p = new Array();
for(var i = 0; i < moto.length; ++i){
p[i] = new point(moto[i].x, moto[i].y);
}
setPenSize(3);
}

[paint]{
clearAll();
setAlpha(30);
drawSmoothCurvedRing(moto);
setAlpha(100);
drawSmoothCurvedRing(p);
}

[always]{
for(var i = 0; i < p.length; ++i){
var dist = distance(moto[i], mouse);
if(dist < 70){
p[i].pushTo(mouse);
}else{
p[i].pushTo(moto[i]);
}
}
}