在Inkscape中,我有一条代表星星的路径。我使用Inkscape作为基准来使用Linq to XML创建我自己的SVG解析器,但是我在解析Inkscape生成的路径数据时遇到了问题。我根据documentation at MDN进行编码,但Inkscape生成了此路径数据:
m 100.93837,238.62186 -15.635004,13.72009 2.438549,20.65787 -17.880056,-10.63004 -18.893249,8.70283 4.584526,-20.28981 -14.11522,-15.27922 20.71345,-1.90975 10.169563,-18.14592 8.21709,19.10952 z
如您所见,有一个移动指令,但没有行指令,因此我的路径解析失败。如果没有行指令,我该怎么理解呢?所有这一切都是移动铅笔"围绕一堆,然后关闭路径。
答案 0 :(得分:2)
移动后的后续坐标对应为interpreted as lineto instructions。如果moveto是相对的,则后续的隐式linetos也是相对的,而绝对值相同。
作为一般的经验法则,如果您想要实施标准,请尽可能阅读规范,而不是遗漏关键细节的方便摘要。 SVG规范非常易读,实际上我在过去10年中没有理由使用其他任何东西作为参考。
无论如何,SVG路径数据解析具有所有有趣的边缘情况,例如,以下是有效的坐标对:5-3
,0.0.1
。