SVG - 如何将<path>切成两半?</path>

时间:2011-10-14 07:05:28

标签: javascript svg drawing

我需要在javascript中的特定点剪切现有路径(曲线)。例如,如果我有以下路径:

<path stroke-width="3"
      stroke="black"
      stroke-linecap="round"
      stroke-linejoin="round"
      id="line_test"
      d="M125,165 C125,165 125,164 125,164">
</path>

从那以后,我可以得到这样的中点:

var line = document.getElementById("line_test");
var length = line.getTotalLength();
var midpoint = line.getPointAtLength(length/2);

一旦我得到那个中点,我想彻底删除剩下的路径。有没有一个函数可以让我得到一个子路径?绘图库对我来说不是一个真正的选择。

1 个答案:

答案 0 :(得分:6)

是的,它被称为getPathSegAtLength(在路径元素上可用)并且它返回pathSegList的索引,该索引可以用于切片那里的pathSegList。

pathSegList是一个类似于数组的列表,如果您使用一些最新的浏览器,您可以使用常规数组表示法来逐步浏览列表,但它更兼容使用SVG 1.1中定义的接口现在。