JS SVG getCTM и setCTM?

Если я использую getCTM () для получения текущей матрицы преобразования, как использовать этот объект для установки матрицы, если я хочу восстановить ее позже (я знаю о сохранении и восстановлении, но они относятся к холсту, а не к элементам)

Я знаю, что я установил атрибут:

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

но это кажется довольно длинным способом сделать это. Я не могу найти функцию setCTM любой такой близкой функции.

разработка для webkit, если это делает разница.

спасибо!

2 ответов


var transform = ownerSVGElement.createSVGTransform()

transform.setMatrix(elem.getCTM())

someelement.transform.baseVal.initialize(transform)

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