我们如何从变换矩阵中得到x和y?

时间:2012-07-18 06:41:32

标签: c# math matrix svg transform

  

可能重复:
  How to get the actual x/y position of an element in SVG with transformations and matrices

我需要获取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&amp;提供了y个属性,但这并未给出图像的实际位置。就像我在

中所知道的那样

转换矩阵[a,b,c,d,e,f] e&amp; f分别给出x和y中的平移轴。但是

问题是这两个( e & f )都是0.现在,我可以为此图片获取实际的x任意y吗?

1 个答案:

答案 0 :(得分: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

  • a,d负责分别缩放x,y
  • e,f负责分别转换x,y

你最终会得到

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

或者,

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