SVG移动命令:相对路径

时间:2016-12-21 19:13:13

标签: svg

我正在尝试了解SVG Path命令。但是我对SVG Path reference

中有关Move命令的说法感到困惑

SVG路径参考指出以下移动命令

  

M (大写)表示将遵循绝对坐标;

因此,如果当前点是(100,100),则命令 M 200 200 会将当前点移动到(200,200)

  

m (小写)表示将遵循相对坐标。

因此,如果当前点是(100,100),则命令 m 200 200 会将当前点移动到(300,300)

  

如果moveto后跟多对坐标,则后续对被视为隐式lineto命令。因此,如果moveto是相对的,则隐式lineto命令将是相对的,而如果moveto是绝对的,则是绝对的。

因此,如果当前点为(100,100),则命令 M 200 200 300 300 400 300 将首先将当前点移动到(200,200)然后画一条线到(300,300),然后换行到 400,400

如果当前点是(100,100),那么命令 m 200 200 300 300 400 400 将首先将当前点移动到(300,300)然后画一条线到(600,600),然后换行到 1000,1000

现在出现了令人困惑的部分

  

“如果相对moveto( m )作为路径的第一个元素出现,那么它将被视为一对绝对坐标。在这种情况下,后续的坐标对被视为相对的即使最初的举动被解释为绝对的举动。“

根据上述说法,在上一个当前点为(100,100)的情况下,命令 m 200 200 300 300 400 400 应该将当前点移动到 (200,200)然后画一条线到(500,500),然后换行 900,900

我的理解是否正确?最后一个陈述真正表明了什么?

1 个答案:

答案 0 :(得分:0)

  

基于上述陈述,在以前的场景中,   当前点是(100,100),那么命令m 200200300300400   400应该将当前点移到(200,200),然后画一条线   到(500,500),然后是900,900。

     

我的理解正确吗?最后的陈述到底是什么   表示吗?

不。当前点不能为100,100来调用它。它的描述有点混乱,但是当偶然性出现时,当前点是0,0的原点。绝对点和相对点都具有相同的作用。

如果您首先将x和y初始化为0,0,那么其他所有事情都会自动解决。