2012-07-18 60 views
0

可能重複:
How to get the actual x/y position of an element in SVG with transformations and matrices我們如何從轉換矩陣得到x和y?

我需要的是在SVG這樣寫的一個元素的X/Y位置:

<image 
    y="-421.28461" 
    x="335.27295" 
    id="image2991" 
    xlink:href="file:///C:/Users/tom/Documents/t.jpg" 
    height="369" 
    width="360" 
    transform="matrix(0.22297057,0.97482518,-0.97482518,0.22297057,0,0)" /> 

這裏x & y屬性給出,但這不給圖像的實際位置。雖然我知道在

變換矩陣[a,b,c,d,e,f]e & f分別給出了在x和y平移軸線。但

問題是,這裏兩個(e & f)都是0.現在我可以得到這個圖像的實際x任何y

+0

它寫滿了。 'x =「335.27295」'''y =「 - 421.28461」' – Shai 2012-07-18 06:49:23

+0

但這不是元素 – 2012-07-18 06:50:30

+0

的實際x和y請參見[image element](http://www.w3.org/TR/SVG/struct .html#ImageElementXAttribute)來自SVG文檔 – Shai 2012-07-18 06:51:13

回答

4

假設,

x="335.27295" 
y="-421.28461" 

鑑於變換矩陣

a    b   e 
c    d   f 
0    0   1 

具有值

0.22297057  0.97482518 0 
-0.97482518 0.22297057 0 
0    0   1 

知道

  • 一,d負責縮放X,Y respectivly
  • E,F是負責將X,Y respectivly

您`ll最終得到

newX = x * a + e 
newY = y * d + f 

或者,

newX = 335.27295 * 0.22297057 + 0 = 74.75 
newY = -421.28461 * 0.22297057 + 0 = -93.93 
+0

很多很多謝謝@Shai – 2012-07-18 07:23:47

+0

不應該變換矩陣是[[ace] [bdf] [0 0 1]]'(即,b和c相比於你的),按照http://www.w3.org/TR/SVG/coords.html#TransformMatrixDefined? – Robert 2015-12-14 03:07:17