我正在尝试使用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方法?
答案 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')