将SVG矩阵转换为x,y坐标

问题描述 投票:0回答:1

我正在处理SVG地图,其中包含text个元素的lot。问题是,旧的/源文件是多年前在Adobe Illustrator中生成的,由于某种原因,该文件将这些元素打印为例如:

<text transform="matrix(1 0 0 1 604.9754 765.0283)">4</text>

(前四个参数(1、0、0、1)永远不变。)

我想实现的是将其翻译成类似的东西

<text x='123' y='456'>4</text>

我已经设法使用正则表达式收集了所有需要的值(文本内容和最后两个转换参数),但是我不知道下一步该怎么做。我还发现,

[matrix())>变换函数以六个值的变换矩阵形式指定一个变换。 matrix(a,b,c,d,e,f)等同于应用变换矩阵:

\\ begin {pmatrix} a&c&e \\ b&d&f \\ 0&0&1 \ end {pmatrix}

通过以下矩阵等式将坐标从先前的坐标系映射到新的坐标系:

\\ begin {pmatrix} x _ {\ mathrm {newCoordSys}} \\ y _ {\ mathrm {newCoordSys}} \\ 1 \ end {pmatrix} = \ begin {pmatrix} a&c&e \\ b&d& f \\ 0&0&1 \ end {pmatrix} \ begin {pmatrix} x _ {\ mathrm {prevCoordSys}} \\ y _ {\ mathrm {prevCoordSys}} \\ 1 \ end {pmatrix} = \ begin {pmatrix} a x _ {\ mathrm {prevCoordSys}} + c y _ {\ mathrm {prevCoordSys}} + e \\ b x _ {\ mathrm {prevCoordSys}} + d y _ {\ mathrm {prevCoordSys}} + f \\ 1 \ end { pmatrix}

所以我的问题是:

我如何转换

这些矩阵将值转换为X,Y坐标?

我正在处理SVG地图,其中包含许多文本元素。问题是,旧的/源文件是几年前在Adobe Illustrator中生成的,出于某种原因,这些文件将这些元素打印为...,

math svg matrix graphics transformation
1个回答
0
投票

我发现,matrix(1 0 0 1 100px 200px)等效于translateX(100px) translateY(200px),这意味着这些值实际上是确切值

© www.soinside.com 2019 - 2024. All rights reserved.