getInnerCircle method
Get the outer circle
formed by the inner centroid of the polygon and its radius
Implementation
Circle getInnerCircle() {
final centroid = getInnerCentroid();
int n = vertices.length;
double radius = 0;
for (int i = 0; i < n; i++) {
int nextI = (i + 1) % n;
int nextI2 = (i + 2) % n;
Point a = vertices[i];
Point b = vertices[nextI];
double d = a.distanceTo(b);
Point c = vertices[nextI2];
double s = (b - a) % (c - a) / 2;
Point p = (a + b) / 2;
radius = max(radius, centroid.distanceTo(p) * d / s / 3);
}
return Circle(radius: radius, center: centroid);
}