2012-04-23 119 views
6

如果我使用getCTM()來獲取當前的轉換矩陣,我如何使用該對象來設置矩陣,如果我想在稍後的時間點恢復它(我知道保存和恢復,但這些指向畫布而不是項目)JS SVG getCTM和setCTM?

我知道我設置屬性:

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

,但似乎有點做的很長的路要走。我找不到任何這種關閉功能的setCTM功能。

爲webkit開發,如果這有所作爲。

謝謝!

回答

4
var transform = ownerSVGElement.createSVGTransform() 

transform.setMatrix(elem.getCTM()) 

someelement.transform.baseVal.initialize(transform) 
5
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)); 
}