JS SVG getCTM和setCTM?

Sen*_*lez 8 javascript svg

如果我使用getCTM()来获取当前的转换矩阵,如果我想在以后恢复它,如何使用该对象来设置矩阵(我知道保存和恢复,但那些引用画布而不是项目)

我知道我设置了属性:

var m = someitem.getCTM();
$(someitem).attr("transform", "matrix("+m.a+","+m.b+","+m.c+","+ m.d+","+m.e+","+m.f+")");
Run Code Online (Sandbox Code Playgroud)

但这似乎还有很长的路要走.我找不到任何这种关闭函数的setCTM函数.

为webkit开发如果有所作为.

谢谢!

Raj*_*ian 6

var transform = ownerSVGElement.createSVGTransform()

transform.setMatrix(elem.getCTM())

someelement.transform.baseVal.initialize(transform)
Run Code Online (Sandbox Code Playgroud)


Stu*_*ley 6

function setCTM(someitem,m) {
  return someitem.transform.baseVal.initialize(
    someitem.ownerSVGElement.createSVGTransformFromMatrix(m));
}
Run Code Online (Sandbox Code Playgroud)

如果someItem.getCTM()您保存,而不是保存someitem.transform.baseVal.getitem(0),您可以使用:

function setTransform(someitem,t) {
  return someitem.transform.baseVal.initialize(t));
}
Run Code Online (Sandbox Code Playgroud)