用控制点关闭SVG路径(Z)?

时间:2012-04-17 23:21:44

标签: svg bezier

我画这样的SVG路径:

开始:

M x, y

添加曲线

Q x1, y1, x, y

等等....当我想要关闭路径时,我只需添加Z

但是最后一个线段现在没有任何控制点。

如何关闭路径并在最后一段上设置控制点?

类似于:Z Q x1, y1其中Z关闭路径(当前指向第一个点)但它使用x1和y1作为控制点,而不仅仅是直线。

1 个答案:

答案 0 :(得分:4)

我理解你的愿望。每次我在Illustrator中绘制一个写意blob时,我总是在原点上设置最终点,然后拖动以创建两侧控制点的切线。

SVG没有这样的功能。没有path command可以做到这一点。最接近的是速记路径命令ST,但这些命令从上一个命令的最后一个控制点派生第一个控制点,而你想要的是从 next 命令(环绕式)的第一个控制点派生第二个控制点的东西。

您可以使用JavaScript执行此操作,例如:像

这样的标记
<path d="… Z" class="smooth-close" />

...以及找到所有smooth-close路径的小脚本,从第一个命令确定适当的控制点,并生成ST命令并将其附加到路径数据。但是,由于你没有用标记你的问题,我认为这样的解决方案对你不感兴趣。