解释压缩的 SVG 路径命令语法



我正在使用从SVGO输出的压缩SVG路径数据,但我无法理解相对行命令的一部分。路径本身如下所示(它是一个三角形,并且显示正确(:

<path d="M2107.49 3283.96l70.68 81.44 28.54-81.69-99.22.25z"/>

d属性拉成命令,我们得到:

M: (Start coords) 2107.49 3283.96
l: (Relative line to coords) 70.68 81.44 28.54-81.69-99.22.25
z (close)

我不明白的是行到命令的最后一对":据我了解,我们应该有 3 对坐标,它们要么用空格分隔70.68 81.44,要么在负数中没有空格:28.54-81.69=28.54-81.69。但是最后那一对"是怎么回事呢?-99.22.25代表-99.22.25吗?我怎么知道如何拆分它?

SVGO 试图从其压缩中挤出每个最后一个字节,因此它可能利用了一些我找不到引用的隐含解析规则。有谁知道如何处理最后一对?

根据 SVG 规范中的 BNF

同样,对于字符串"M 0.6.5","moveto"的第一个坐标使用字符"0.6",并在遇到第二个小数点时停止,因为"坐标"的产生只允许一个小数点。结果是第一个坐标将为"0.6",第二个坐标将为".5"。

所以 -99.22.25是 -99.22,后跟 .25

最新更新