# Asymmetric circle/blobs take 2

Like all things you need to know what the question is before you can get a good answer! So my problem is that I want to draw an asymmetric circle which is relatively easy using ofPath. However if I want the blob to wobble (by individually changing the curveTo points(vertices?) I have to clear the previous ofPath shape and make a new one, which I’m guessing requires a bit of processing power to do every frame. For example (note I’m using vertices stored as polar coordinates to make it easier to do the wobbling):

``````//make blob
// make noise
float n1 = ofSignedNoise(noiseOffset, (ofGetFrameNum() * .01) + points - 1) * wobble;
float n2 = ofSignedNoise(noiseOffset, (ofGetFrameNum() * .01)) * wobble;
float n3 = ofSignedNoise(noiseOffset, (ofGetFrameNum() * .01) + 1) * wobble;
// make extre control points
float angle1 = blobpoints[points - 1].x;
float angle2 = blobpoints.x;
float angle3 = blobpoints.x;
float amp1 = blobpoints[points - 1].y;
float amp2 = blobpoints.y;
float amp3 = blobpoints.y;
float x1 = cos(angle1) * (amp1 + n1);
float y1 = sin(angle1) * (amp1 + n1);
float x2 = cos(angle2) * (amp2 + n2);
float y2 = sin(angle2) * (amp2 + n2);
float x3 = cos(angle3) * (amp3 + n3);
float y3 = sin(angle3) * (amp3 + n3);

// make curves
blobshape.clear();
blobshape.curveTo(x1,y1);
for(int i=0; i < points; i++){
float angle = blobpoints[i].x;
float amp = blobpoints[i].y + (ofSignedNoise(noiseOffset, (ofGetFrameNum() * .01) + i) * wobble);
float x = cos(angle) * amp;
float y = sin(angle) * amp;
blobshape.curveTo(x,y);
}
blobshape.curveTo(x2,y2);
blobshape.curveTo(x3,y3);
blobshape.close();
``````

With polyline you can access the vertices and change their position without having to clear the object first. So do I generate my blob as a polyline then somehow transfer it to a path? If so how do you transfer a polyline to a path? Or is there a smarter way to do all of this (eg meshes which I haven’t got my head around yet)?