连接两条贝塞尔曲线

3
我在空间中有两条相距一段距离的贝塞尔曲线。 曲线1有控制点A0,A1,A2,A3。A0和A3位于曲线上并且是其端点。 曲线2有控制点C0,C1,C2,C3。C0和C3位于曲线上并且是其端点。
我想用一个中间的贝塞尔曲线B将A和C两条曲线连接起来。中间曲线B有控制点A3和C0,它们位于曲线上并且是其端点。中间控制点B1和B2对我来说是未知的。同时,连接应该足够平滑。请帮忙指导如何进行操作。我已经阅读了很多关于贝塞尔曲线的资料,但不知道如何做这个。 谢谢和问候, Gauri

如果Arty回答了你的问题,请随意点击他答案旁边的勾选标记来接受它。 - LarsTech
这里有一个HTML5教程,详细解释了如何使用Canvas API连接两个贝塞尔曲线。 - Alex
2个回答

4

B1将是:B1x = 2 * A3x - A2x; B1y = 2 * A3y - A2y;

B2将是:B2x = 2 * C0x - C1x; B2y = 2 * C0y - C1y;

这将为您提供完美平滑的连接。


2

@Arty

你是正确的,但这只能保证一个“足够顺滑”的连接。

为了实现更好看的两条曲线的连接,你还必须在交点处使二阶导数相等。我把这个信息放在这里,以供需要的人参考。


你是对的,“完美”的用词在这里并不正确。但是,要均衡第二阶导数需要以不同的方式构建整个曲线,因为你不仅要匹配 n+/-1 个控制点,还必须匹配 n+/-2 个控制点。 - Arty

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接