输入:
输出:
在path
getPointAtLength
以及getPathSegAtLength
上有一个很好的方法,所以我们可以按照给定的长度获得细分,但仍然不清楚如何"拆分&#34 ;这段和所需的路径。
我想知道这个问题有一些统一的解决方案。
答案 0 :(得分:1)
正如您所发现的,SVGPathElement
具有逐步遍历路径段的方法。您只需要逐步完成它们,直到找到必须细分的那个。请注意,这些API正处于变化之中。因此,您可能需要在某些浏览器中使用polyfill - 具体取决于您是选择使用新API还是旧API
唯一难以细分的路径段类型是二次和三次贝塞尔曲线。但使用De Casteljau的算法,这些实际上也很简单。
请参阅:Divide bezier curve into two equal halves
该答案解释了划分立方贝塞尔曲线。然而,二次版本非常相似。