void setup(){
size(500, 500);
noFill();
mouseMoved();
}
void draw(){
}
void mouseMoved(){
background(255);
beginShape();
float angStep = map(mouseX, 0, width, 30, 1);
float radiousWidth = map(mouseY, 0, height, 30, 120);
PVector[] heads = new PVector[3];
for(int angle = 0, i = 0; angle < 360; angle += angStep){
float radian = radians(angle);
float radious = map(random(1), 0, 1, 150 - radiousWidth / 2, 150 + radiousWidth / 2);
float x = 250 + radious * cos(radian);
float y = 250 + radious * sin(radian);
if(i == 0 || i == 1 || i == 2){
heads[i] = new PVector(x, y);
}
curveVertex(x, y);
i++;
}
for(int i = 0; i < 3; i++){
curveVertex(heads[i].x, heads[i].y);
}
endShape();
}