2015-11-07 53 views
0

是否有內建函數庫將SVGMatrix的點向量相乘?如何將SVGMatrix應用於點數組?

我有一個已縮放的SVG圖形,我想用原始座標系中的一條具有固定寬度的線條在屏幕空間中註釋該圖形。 (也就是說,放大或縮小時線條不應該改變寬度,但當然圖像中的線條會這樣做)。所以,我的方法是將圖像轉換爲a,然後採用我的點陣並應用相同的轉換,然後使用這些轉換後的點在根級創建一個新的路徑對象。

我正在尋找最乾淨的方式來做到這一點。

回答

2

svg元素具有創建矩陣對象和點對象的方法。矩陣對象具有用於矩陣運算的方法(例如,乘法,平移,縮放等)。點對象有應用矩陣變換的方法。

例如...

var svg = document.getElementById("mySvg"); 
var matrix1 = svg.createSVGMatrix(); 
var matrix2 = matrix1.translate(2, 3); 
var point1 = svg.createSVGPoint(); 
point1.x = 1; 
point1.y = 1; 
var point2 = point1.matrixTransform(matrix2); 

的文檔可以被發現在基體和點對象...

http://www.w3.org/TR/SVG/single-page.html#coords-InterfaceSVGPoint http://www.w3.org/TR/SVG/single-page.html#coords-InterfaceSVGMatrix

相關問題