关于 inkscape 的 H 和 V 路径命令的使用

Ker*_*nik 1 javascript svg inkscape

I\xe2\x80\x99m 尝试通过矢量化图片生成粗略的 svg 文件。然后,我用一些节点脚本重新设计了 svg。

\n

为了实现我的目标,我必须确定一个点是否在给定的路径上。为此,我使用\n https://github.com/rubenv/point-in-svg-polygon

\n

当我调用 时isInside(point, path),遇到错误:Uncaught Error Error: Unknown Operator: for Polygon

\n

调试后,我可以看到我的 SVG 包含V\xe2\x80\xaf 和H带有 2 个参数的命令,而 lib 限制为 1 个。

\n

示例

\n
<path d="M 0,512 V 0 H 512 1024 V 512 1024 H 719.62244 C 450.28457,1024 ... Z" id="path2785"/>\n
Run Code Online (Sandbox Code Playgroud)\n

该文档往往与https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths中的库一致,但我可以\xe2\x80\x99t 想象 Inskape 无缘无故地这样做。

\n

你能告诉我为什么 inkscape 这样做(can\xe2\x80\x99t 用 google 找到它)吗?\n这是库的问题还是 inkscape 的问题?

\n

Rob*_*son 5

所有带有值的路径命令都可以重复这些值,它们通常意味着重复该命令。

根据规范,M 0,0 H 5 10 的含义与 M 0,0 H 5 H 10 相同

唯一的例外是 M,它会变成 L(而 m 会变成 l),所以

M 0,0 10,0 表示 M 0,0 L 10, 0

这对于 H 和 V 没有多大用处,因为除非您绘制标记,否则它看起来不会有太大不同。例如,如果您从 0,0 到 10,0 绘制一条水平线,通常看起来与从 0,0 到 5,0 绘制一条水平线,然后从 5,0 到 10,0 继续该线相同。