// Any three (non colinear) points define a circle
// { .xy=center, .z=radius }
vec3 getCircle( vec2 a, vec2 b, vec2 c )
{
vec2 ba = b-a, cb = c-b, ac = a-c;
float de = ba.x*cb.y-ba.y*cb.x; // zero if colinear
vec2 ce = 0.5*(a b vec2(ba.y,-ba.x)*dot(ac,cb)/de);
return vec3( ce, length(a-ce) );
}