如何展平转换后的SVG路径

时间:2019-05-15 19:44:08

标签: d3.js snap.svg web-frontend

我正在尝试使用Snap.Svg javascript库从先前转换的路径在svg中创建新的路径字符串。创建新路径字符串时,必须将旧的转换纳入其中。问题是我不确定确切的方法是什么。我看过这个线程Get the current matrix transformation of an SVG element,但是当我尝试在snap.svg中尝试获取要添加到该方法的对象的矩阵时,却未定义。如示例Apply transformation to result of previous transformation on SVG path所示,如何从DOM节点获取转换矩阵对象。我认为快照库中的相关方法是http://snapsvg.io/docs/#Snap.path.map

我的代码:

   var result = d3.select(".line").node();
   console.log(result.transform.baseVal.consolidate().matrix);

以上返回null。如何创建/获取正确的转换矩阵对象,以便可以使用Snap.path.map方法?

1 个答案:

答案 0 :(得分:1)

不确定使用的是d3还是Snap,因此答案可能取决于。如果是Snap,您可以查看从

获取矩阵
element.transform().localMatrix or 
element.transform().globalMatrix 

然后使用该矩阵使用

Snap.path.map( pathString, Matrix ) 

来自http://snapsvg.io/docs/#Snap.path.map,以应用该变换

如果需要获取转换字符串,则可以从

获取
somepath.attr('d')