2012-04-23 14 views
6

Wenn ich getCTM() verwende, um die aktuelle Transformationsmatrix zu erhalten, wie benutze ich dieses Objekt, um die Matrix zu setzen, wenn ich sie zu einem späteren Zeitpunkt wiederherstellen will (ich weiß über Speichern und Wiederherstellen, aber diese beziehen sich auf die Arbeitsfläche und nicht) Artikel)JS SVG getCTM und setCTM?

ich weiß, dass ich das Attribut:

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

Aber diese Art von einem langen Weg scheint, es zu tun. Ich kann eine setCTM-Funktion einer solchen geschlossenen Funktion nicht finden.

Entwickeln für Webkit, wenn das einen Unterschied macht.

Danke!

Antwort

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)); 
} 

Wenn statt someItem.getCTM() des Sparens, Sie someitem.transform.baseVal.getitem(0) speichern, können Sie verwenden:

function setTransform(someitem,t) { 
    return someitem.transform.baseVal.initialize(t)); 
}