SVG路径命令“s”和“t”

问题描述:

当执行"s"(相对三次贝塞尔曲线)和"t"(相对二次贝塞尔曲线)时,隐式定义的控制点的坐标是否被用作下一个相对坐标的基础?SVG路径命令“s”和“t”

换句话说考虑以下立方米弧:

cubic arc example

  • cp当前点计算镜像从以前的圆弧
  • ep明确的控制点最后一个控制点
  • ip隐含控制点
  • fp最后一点电弧

的T应当的ep用作碱ip(隐式点)的相对坐标,或者它们应该相对于cp(路径的当前点)?

在官方文档中,我发现这个不清楚,没有使用相对坐标的例子。

+0

你能否确认你在说贝塞尔曲线?你在问题中提到“弧”。 – 2013-04-07 09:07:20

+0

对不起......是的,我正在谈论贝塞尔三次和二次弧(svg'路径元素的's'和't'代码) – 6502 2013-04-07 09:08:29

documentation here指出大写小号预计绝对坐标,而较低的情况下小号预计相对坐标。类似于T(绝对)和t(相对)。

编辑 - 相对于目前点 - 对不起,应该是明确的。连接于上述相同的文档包括以下:

有关这些命令的相对版本中,所有的坐标值在命令的开始是相对于当前点

+1

好的。但相对于什么?到当前点还是隐式控制点?图片中的“ep”坐标是相对于“ip”还是“cp”? – 6502 2013-04-07 09:10:56

+0

所以你的意思是即使'fp'坐标是相对于'cp'? – 6502 2013-04-07 09:13:15

+0

看编辑 - 文档不清楚,但它*是*有... – 2013-04-07 09:17:09

规则是

  1. 当使用相对模式的坐标在命令的开始是相对于当前点

  2. 在当多个坐标,而无需重复基点每次重复

例如简单的路径

m 100,100 100,0 0,100 -100,0 0,-100 

描述之后被更新命令给出的命令“链”的情况下(100,100)至(200,200)

simple relative path

(所述l“线对”以红色显示命令是隐式的,如果多个坐标被提供用于“m”个命令对)

要注意的是,相对“基地”为坐标在被更新的重要点每个转折点。这在文档中有些欺骗,因为m命令的语法被描述为接受(x,y)+作为参数,所以读者可能会被欺骗地认为相对基础只会在整个点序列的末尾改变。

现在让我们考虑贝塞尔立方路径

m 100,100 c 25,25 75,25 100,0 s 25,125 0,100 -75,-25 -100,0 

bezier arcs example

两个红色控制点被镜像的最后一个控制点自动计算。红色s命令是隐含的,因为四个点跟在s之后。

对于三次Bezier弧命令,两个控制点和终点是相对于同一个起点(它们与序列中的前一个不相对),但是在每个圆弧处更新相对坐标计算的基点。