2012-04-23 11 views
6

Jeśli używam getCTM(), aby uzyskać bieżącą macierz tranformacji, w jaki sposób użyć tego obiektu do ustawienia macierzy, jeśli chcę go przywrócić w późniejszym czasie (wiem o zapisywaniu i przywracaniu, ale te odnoszą się do obszaru roboczego, a nie pozycji)JS SVG getCTM i setCTM?

wiem ustawić atrybut:

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

ale wydaje rodzaju długiej drodze robi. Nie mogę znaleźć funkcji setCTM jakiejkolwiek tak bliskiej funkcji.

Opracowanie dla webkita, jeśli to robi różnicę.

Dzięki!

Odpowiedz

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

Jeżeli zamiast zapisywania someItem.getCTM(), oszczędzasz someitem.transform.baseVal.getitem(0), można użyć:

function setTransform(someitem,t) { 
    return someitem.transform.baseVal.initialize(t)); 
} 
Powiązane problemy