getInnerCentroid method
Get the centroid of inner circle
this centroid is calculated from the center of all sides of polygon
Implementation
Point getInnerCentroid() {
final n = vertices.length;
var cx = 0.0;
var cy = 0.0;
var signedArea = 0.0;
for (var i = 0; i < n; i++) {
final nextI = (i + 1) % n;
final cross = vertices[i].x * vertices[nextI].y -
vertices[nextI].x * vertices[i].y;
cx += (vertices[i].x + vertices[nextI].x) * cross;
cy += (vertices[i].y + vertices[nextI].y) * cross;
signedArea += cross;
}
signedArea *= 0.5;
final factor = 1.0 / (6.0 * signedArea);
return Point(cx * factor, cy * factor);
}