2012-04-23 32 views
6

Nếu tôi sử dụng getCTM() để lấy ma trận biến dạng hiện tại, làm cách nào để sử dụng đối tượng đó để đặt ma trận nếu tôi muốn khôi phục ma trận sau này (tôi biết về lưu và khôi phục nhưng những tham chiếu đến canvas chứ không phải bài)JS SVG getCTM và setCTM?

tôi biết tôi thiết lập các thuộc tính:

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

Nhưng điều đó dường như sắp xếp của một chặng đường dài để làm việc đó. Tôi không thể tìm thấy hàm setCTM của bất kỳ chức năng đóng nào như vậy.

Phát triển webkit nếu điều đó tạo nên sự khác biệt.

Cảm ơn!

Trả lời

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

Nếu, thay vì tiết kiệm someItem.getCTM(), giúp bạn tiết kiệm someitem.transform.baseVal.getitem(0), bạn có thể sử dụng:

function setTransform(someitem,t) { 
    return someitem.transform.baseVal.initialize(t)); 
} 
Các vấn đề liên quan