【发布时间】:2021-10-23 20:38:25
【问题描述】:
我想获得 SVG 路径的重心。我已经在使用 paper.js 进行路径操作,但我可以看到任何计算选项。有没有可能?
【问题讨论】:
-
你的路径是多边形,或者你能用多边形来近似它们吗?如果是这样,您可以自己轻松计算:stackoverflow.com/a/43747218/1869660
-
它们是通用曲线。
我想获得 SVG 路径的重心。我已经在使用 paper.js 进行路径操作,但我可以看到任何计算选项。有没有可能?
【问题讨论】:
如果您有一个Path 对象(最好没有自相交),您可以使用.flatten() 函数创建一个近似多边形克隆:
const path = ...
//Approximate polyline/polygon:
const poly = path.clone();
poly.flatten(8);
const polyPoints = poly.exportJSON({ asString: false })[1].segments;
然后,网上有几个资源解释了如何计算多边形的质心,例如:
【讨论】: