我已经从Python的Shapely切换到JavaScript的PaperJS。我想找到多边形或闭合路径的质心,因为它被称为 PaperJS。有没有快速的方法来做到这一点还是我必须编写自己的算法?
你看过 poligon 路径创建的边界框吗?
在 Paperjs 中创建的每个项目都有一个 bounds 属性,它返回一个 Rectangle 对象,这个 Rectangle 对象将有一个 center 属性,返回对象的中心
希望有帮助
path.bounds.center
不适用于非凸多边形(具有向内角的多边形)。这是因为多边形的质心可能并不正好位于其边界框的中心。
但是,有一个名为 Ploylabel 的库可以做到这一点。 这是一个用法示例:
let decagon = new Path.RegularPolygon(new Point(200, 70), 10, 50);
let decagon_segments = decagon.segments.map(segment =>[segment.point.x, segment.point.y]);
let centroid = polylabel([path_segments]);
在使用上述代码之前,请确保安装 paperjs 和 polylabel。