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

Tom*_*der 0 c# math svg transform matrix

可能的重复:
如何使用转换和矩阵获取SVG中元素的实际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)" />
Run Code Online (Sandbox Code Playgroud)

这里给出了xy属性,但是没有给出图像的实际位置。据我所知

变换矩阵[a,b,c,d,e,f] ef分别在x和y中给出平移轴。但是

问题是,在这里都( e & f )被0。现在我可以我得到实际的x任何y这种形象?

Sha*_*hai 5

假设,

x="335.27295"
y="-421.28461"
Run Code Online (Sandbox Code Playgroud)

给定变换矩阵

a              b          e
c              d          f
0              0          1
Run Code Online (Sandbox Code Playgroud)

具有价值

0.22297057     0.97482518 0
-0.97482518    0.22297057 0
0              0          1
Run Code Online (Sandbox Code Playgroud)

会心

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

你最终会得到

newX = x * a + e
newY = y * d + f
Run Code Online (Sandbox Code Playgroud)

要么,

newX = 335.27295 * 0.22297057 + 0 = 74.75
newY = -421.28461 * 0.22297057 + 0 = -93.93
Run Code Online (Sandbox Code Playgroud)