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

val*_*674 5 svg bezier

我这样绘制 SVG 路径:

开始:

M x, y
Run Code Online (Sandbox Code Playgroud)

添加曲线

Q x1, y1, x, y
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

Phr*_*ogz 4

我理解你的愿望。每次我在 Illustrator 中徒手绘制斑点时,我总是将最终点设置在原始点上,然后拖动以为两侧的控制点创建切线。

\n\n

SVG 没有这样的功能。没有路径命令可以执行此操作。最接近的是简写路径命令ST,但它们从前一个命令的最后一个控制点派生出第一个控制点,而您想要的是从下一个命令的第一个控制点派生第二个控制点 wrap-围绕风格)。

\n\n

您可以使用 JavaScript 来完成此操作,例如标记

\n\n
<path d="\xe2\x80\xa6 Z" class="smooth-close" />\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n