获取SVG元素的当前矩阵变换

Ceq*_*iel 2 javascript svg transformation matrix

我知道一种获取任何SVG元素的当前矩阵变换的非常简单的方法:

// 't' is a string
var t = window.getComputedStyle(nativeElement, null).transform
console.log(t);
Run Code Online (Sandbox Code Playgroud)

问题在于以前的方法返回的数字不超过六个小数。例如,先前的代码可能返回:

matrix(0.965926, 0.258819, -0.258819, 0.965926, 0, 0)
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以更准确地获取任何SVG元素的矩阵变换?

Pau*_*eau 5

要将当前transform属性作为SVGMatrix对象获取,可以使用:

element.transform.baseVal.consolidate().matrix
Run Code Online (Sandbox Code Playgroud)

element.transform.baseVal.consolidate().matrix
Run Code Online (Sandbox Code Playgroud)
var myrect = document.getElementById("myrect");

console.log(myrect.transform.baseVal.consolidate().matrix);
Run Code Online (Sandbox Code Playgroud)