簡體   English   中英

如何使用變換和矩陣獲取SVG中元素的實際x / y位置

[英]How to get the actual x/y position of an element in SVG with transformations and matrices

我需要獲取SVG中這樣寫的元素的x / y位置:

<g transform="scale(10,10)" id="g6558">
    <text transform="matrix(1,0,0,-1,236.532,417.253)" id="text6560">
        <tspan x="0 4.448" y="0" id="tspan6562">10</tspan>
    </text>
</g>

在這種情況下,如何獲取tspan元素的當前位置? 我必須手動計算它們,因為我不能使用getBBox()或其他本機函數,因為我使用Flash包裝器來顯示SVG(http://code.google.com/p/svgweb/)支持基本屬性,標簽名稱等

如何在元素的x / y位置上計算矩陣和變換?

除了我理解你的問題,你需要知道一個元素的x和y坐標,在它被轉換之后。

在數學上,所有變換都可以表示為以下形式的3x3變換矩陣:

a   b   e
c   d   f
0   0   1

由於在上述3x3矩陣中僅使用了六個值,因此變換矩陣也表示為向量: [abcdef] a和d分別負責x和y的縮放,而e和f分別給出x和y中的平移軸。 所以在你的代碼中

     <text transform="matrix(1,0,0,-1,236.532,417.253)" id="text6560">
      <tspan x="0 4.448" y="0" id="tspan6562">10</tspan>
    </text>

元素文本在y軸的x軸417.253中被翻譯為236.532。 所以tspan x點變為236 .. + 4.4 ..和y點417 .. + 0。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM