centroid
是 Yuka js 库中的一个多边形(Polygon)对象方法,用于计算多边形重心的坐标。
centroid( polygon )
polygon
:一个可以用于表示多边形的点数组,例如 [[0,0],[0,1],[1,1],[1,0]]
。{x: 0.5, y: 0.5}
。const polygon = [[0,0],[0,1],[1,1],[1,0]];
const centroidCoord = centroid( polygon );
console.log(centroidCoord); // {x: 0.5, y: 0.5}
计算多边形重心的坐标,可以通过以下公式求得:
$$\large X_c = \frac{\sum_{i=0}^{n-1}(x_i + x_{i+1}) * (x_i*y_{i+1} - x_{i+1}*y_i)}{6A}$$
$$\large Y_c = \frac{\sum_{i=0}^{n-1}(y_i + y_{i+1}) * (x_i*y_{i+1} - x_{i+1}*y_i)}{6A}$$
其中,$n$ 是多边形的边数,$A$ 是多边形面积。而多边形计算面积的方法,可以通过将多边形划分成多个三角形,再将其面积相加来计算。