这个网站,这似乎有大约的Catmull最详细的信息-ROM花键,似乎需要四个点来创建样条曲线。然而,它没有提及的点P0和p3如何影响P1和P2之间的值。

另一个问题我已经是你会如何创建连续样条线?难道是为定义点P1一样容易,P2可与P4连续,P5通过使P4 = P2(即,假设我们有P0,P1,P2,P3,P4,P5,P6,... ...,PN )。

一个更一般的问题是如何将一个计算上的Catmull-ROM花键切线?难道有涉及样条曲线上取两个点(说在0.01,0.011)和获得,考虑到位置,并根据毕达哥拉斯切线坐标的输入值给?

有帮助吗?

解决方案

看看方程式2 - 它描述了控制点如何影响线。你可以看到点P0P3进入方程沿P1的曲线P2绘制点。您还可以看到该方程给出P1t == 0P2t == 1

此示例方程可以推广。如果你有个R0R1,... RN那么你可以通过使用公式2 RKRK + 1P0 = RK - 1P1 = RK绘制P2 = RK + 1P3 = RK + 2之间的点。

您不能从R0密谋R1RN - 1RN除非你增加额外的控制点,以代替R - 1RN + 1。总的想法是,你可以选择你要添加到序列的头部和尾部给自己所有的参数,计算出什么样点。

可以一起通过删除它们之间的控制点中的一个连接两个花键。假设你有R0R1,...,RNS0S1,... SM它们可以加入到R0R1,...,RN - 1S1S2,... SM

要计算的切线在任何点只取式(2)的衍生物。

其他提示

维基百科文章进入一点点深度。花键的一般形式需要为具有相关的切向量输入2控制点。然后可加入另外的花键段条件是在公共控制点的切线向量相等,它保留了C1连续性。

在特定的Catmull-ROM形式,在中间点的所述切向量被邻近控制点的位置来确定。因此,为了创建通过多个点的C1连续样条,它是足以提供该组控制点和切线在第一和最后一个控制点的载体。我认为标准行为是使用P1 - P0在P0和PN切线向量 - 。在PN PN-1

根据该维基百科文章,计算在控制点Pn的切线,可以使用以下公式:

T(n) = (P(n - 1) + P(n + 1)) / 2

这也回答了你的第一个问题。对于一组4个控制点,P1,P2,P3,P4,内插P2和P3之间的值需要的信息形成所有4个的控制点。 P2和P3可以自行确定通过插值段必须通过端点。 P1和P3确定切向量插值段将在点P2。 P4和P2确定切向量段将在点P3。切线矢量在控制点P2和P3影响它们之间的内插段的形状。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top