不,没有人制造过这个工具。至少,不是你我都能找到的。部分问题在于您的定义。您要求删除转换,
[…] 所以我可以看到我的点/线/多边形的“绝对”位置。
对于 SVG 元素和转换的子集,可以将转换烘焙到元素的属性中,但在一般情况下它不能工作。例如,考虑这个简单的案例:
<svg xmlns="http://www.w3.org/2000/svg">
<g transform="translate(-10,10) skewX(57) rotate(45) translate(17,17)">
<rect fill="red" stroke="blue" width="20" height="30" />
</g>
</svg>
无法修改<rect>
元素的特定属性以使其显示相同的结果。您可以做的最好的事情是在表示总全局变换transform="…"
的元素上放置一个属性。<rect>
这在 SVG UA 中相对容易做到,在独立的命令行工具中稍难做到(但仍然可能)。我会帮你做,但我认为结果对你没有帮助,因为它们没有告诉你任何关于点的绝对位置的信息。
您可能会说“不,我不能用 a 来做<rect>
,但我可以将 a 转换<rect>
为 a<polygon>
或 a<path>
并为这些点使用绝对坐标。” 但你只对了一半。如果您注意到由于倾斜导致的不同的明显笔划宽度,您会发现没有任何一个<polygon>
可以准确地表示倾斜的<rect>
.
一般来说,您唯一能做的就是将所有<g>
变换的总和烘焙到各个元素上,并意识到这种变换可能会极大地影响内容的最终位置和外观。