如果我使用getCTM()来获取当前的转换矩阵,如果我想在以后恢复它,如何使用该对象来设置矩阵(我知道保存和恢复但是那些引用了画布和不是项目)
我知道我设置了属性:
var m = someitem.getCTM();
$(someitem).attr("transform", "matrix("+m.a+","+m.b+","+m.c+","+ m.d+","+m.e+","+m.f+")");
但这似乎还有很长的路要走。我找不到任何这种近似函数的setCTM函数。
为webkit开发,如果这会产生影响。
谢谢!
答案 0 :(得分:6)
function setCTM(someitem,m) {
return someitem.transform.baseVal.initialize(
someitem.ownerSVGElement.createSVGTransformFromMatrix(m));
}
如果您保存someItem.getCTM()
,而不是保存someitem.transform.baseVal.getitem(0)
,则可以使用:
function setTransform(someitem,t) {
return someitem.transform.baseVal.initialize(t));
}
答案 1 :(得分:4)
var transform = ownerSVGElement.createSVGTransform()
transform.setMatrix(elem.getCTM())
someelement.transform.baseVal.initialize(transform)