2012-04-23 16 views
6

Si utilizo getCTM() para obtener la matriz de transformación actual, ¿cómo utilizo ese objeto para establecer la matriz si quiero restaurarla en un momento posterior (sé sobre guardar y restaurar, pero esos se refieren al lienzo y no a material)JS SVG getCTM y setCTM?

sé que establece el atributo:

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

pero que parece una especie de un largo camino de hacerlo. No puedo encontrar una función setCTM de tal función cercana.

Desarrollando para webkit si eso hace la diferencia.

Gracias!

Respuesta

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

Si, en lugar de guardar someItem.getCTM(), se ahorra someitem.transform.baseVal.getitem(0), puede utilizar:

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