该函数用于计算凸包的重心。
computeCentroid(points)
points
: Array
,一个包含 Point
对象的数组,表示凸包的顶点。Point
对象,表示凸包的重心。
const points = [
new Point(0, 0),
new Point(2, 0),
new Point(1, 1),
new Point(0, 2),
new Point(2, 2),
];
const hull = ConvexHull.compute(points);
const centroid = ConvexHull.computeCentroid(hull);
console.log(centroid); // Point { x: 1, y: 1 }
凸包的重心是所有顶点的平均值。计算重心的方法是将每个顶点的坐标相加,再除以顶点的总数。这可以用以下公式表示:
centroid_x = (x1 + x2 + ... + xn) / n
centroid_y = (y1 + y2 + ... + yn) / n
如果 points
参数为空数组,则函数将抛出一个 Error
,指示无法计算凸包的重心。如果 points
中包含的 Point
对象数量少于 3 个,则返回一个位于第一个顶点的坐标的 Point
对象,这是一种特殊情况。
为获得更精确的结果,可以使用更多的顶点。但是,如果顶点太多,计算可能会变慢。