我正在尝试了解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 。
我的理解是否正确?最后一个陈述真正表明了什么?
答案 0 :(得分:0)
基于上述陈述,在以前的场景中, 当前点是(100,100),那么命令m 200200300300400 400应该将当前点移到(200,200),然后画一条线 到(500,500),然后是900,900。
我的理解正确吗?最后的陈述到底是什么 表示吗?
不。当前点不能为100,100来调用它。它的描述有点混乱,但是当偶然性出现时,当前点是0,0的原点。绝对点和相对点都具有相同的作用。
如果您首先将x和y初始化为0,0,那么其他所有事情都会自动解决。