这是有效的 SVG 路径吗?
Is this a valid SVG path?
我 运行 在使用各种 svg 库渲染以下 SVG 路径时遇到问题:
<path d="M19.35 10.04c-.68-3.45-3.71-6.04-7.35-6.04-2.89 0-5.4 1.64-6.65 4.04-3.01.32-5.35 2.87-5.35 5.96 0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zm-2.35 2.96l-5 5-5-5h3v-4h4v4h3z"/>
具体来说,您可以看到这个街区的一些奇怪之处:
4.04-3.01.32-5.35
这修复了它:
4.04-3.01+0.32-5.35
...就像这样:
4.04-3.01 0.32-5.35
我对 SVG 规范的阅读表明原始路径无效,但由于该图标正好来自 Google 的 material 设计图标 (https://github.com/google/material-design-icons) - 而且有很多类似的"errors",我有点怀疑我读BNF
谁能提供第二意见?
4.04-3.01.32-5.35 有效。 SVG path specification grammar 表示我们正在处理这个
curveto-argument comma-wsp? curveto-argument-sequence
那个?在 comma-wsp 之后表示其中的 0 或 1。在这种情况下,我们有 0.
通过 BNF 进行追踪,我们最终到达了关于在任何求幂字符之前解析数字的部分,即
digit-sequence? "." digit-sequence.
一旦我们看到一个句号,我们就不能再看到了,除非我们看到一个指数,因此第二个句号必须是其他东西的一部分,即下一个数字。
所以上面的字符序列对应的值是:4.04 -3.01 .32 -5.35
我 运行 在使用各种 svg 库渲染以下 SVG 路径时遇到问题:
<path d="M19.35 10.04c-.68-3.45-3.71-6.04-7.35-6.04-2.89 0-5.4 1.64-6.65 4.04-3.01.32-5.35 2.87-5.35 5.96 0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zm-2.35 2.96l-5 5-5-5h3v-4h4v4h3z"/>
具体来说,您可以看到这个街区的一些奇怪之处:
4.04-3.01.32-5.35
这修复了它:
4.04-3.01+0.32-5.35
...就像这样:
4.04-3.01 0.32-5.35
我对 SVG 规范的阅读表明原始路径无效,但由于该图标正好来自 Google 的 material 设计图标 (https://github.com/google/material-design-icons) - 而且有很多类似的"errors",我有点怀疑我读BNF
谁能提供第二意见?
4.04-3.01.32-5.35 有效。 SVG path specification grammar 表示我们正在处理这个
curveto-argument comma-wsp? curveto-argument-sequence
那个?在 comma-wsp 之后表示其中的 0 或 1。在这种情况下,我们有 0.
通过 BNF 进行追踪,我们最终到达了关于在任何求幂字符之前解析数字的部分,即
digit-sequence? "." digit-sequence.
一旦我们看到一个句号,我们就不能再看到了,除非我们看到一个指数,因此第二个句号必须是其他东西的一部分,即下一个数字。
所以上面的字符序列对应的值是:4.04 -3.01 .32 -5.35