有没有一种方法可以规范化/归零SVG路径数据?

5

我可以将路径绘制在页面的任何位置。因此,我将拥有一个位于容器中央的路径。路径数据类似于:

M 100 100 L 100 200 L 200 200 L 200 100 z

这将在坐标x 100,y 100处创建一个框。但我想将其规范化或零点化,以便坐标最终为:

M 0 0 L 0 100 L 100 100 L 100 0 z

然后我将x设置为100,y设置为100。在这个例子中,我可以进行简单的数学运算,因为路径是一个正方形,但如果不是,例如,如果它是从右到左的线或者是复杂的路径,是否有代码可以将其归零?请在需要澄清时询问,而不是投票反对。这是Flex的Path类的源代码,它使用AS3(就像JavaScript一样),看起来有一些函数可以使用Path类获取边界。顺便说一下,为了告知读者我的标签选择,Flex和FXG是SVG的兄弟标记语言(都由Adobe创建)。路径数据对于两种语言是相同的,标记几乎是一对一的。在一个语言中有效的答案可能在另一个语言中也有效。此外,DOMParser可以解析SVG,如果有帮助,我可以使用它。

1
使用相对坐标,例如l而不是L - Robert Longson
1个回答

0

我认为这是简单的数学问题,无论你的路径有多复杂。只需迭代点并确定最小的x和y值即可。Et voilà!那就是你的“零点”偏移量。你已经在你的正方形中无意识地应用了相同的算法,这是显而易见的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接