B样条曲线是否经过控制点?

4

维基百科上的内容和图片表明B样条曲线不会经过控制点,我在其他地方找到的信息与维基百科上的内容相同。然而,在scipy.interpolate中可以执行样条插值,例如interp1d 'cubic'splrep splev(这两个操作应该类似于 Difference between quadratic and 2nd order spline interpolation in scipy)。通过绘图,我发现曲线穿过了所有的控制点。但是文档和库代码显示这些操作的基础是B样条。

我现在非常困惑。我知道B样条是一种样条曲线,在B样条插值之外还有许多种样条插值,如自然立方样条插值和三次Hermite插值。

我的当前问题:

  1. 样条曲线和样条插值之间的关系。样条插值是否总是经过所有的控制点?
  2. B样条和B样条插值以及三次样条插值是否相同?
  3. B样条插值是否会经过控制点?
1个回答

3
  1. 与贝塞尔曲线不同,B样条通常不会通过端点控制点MIT讨论, 但夹紧的B样条会夹紧的B样条

  2. B样条是由基函数组成的样条。B样条插值是一种评估B样条以找到它确切位置的方法。三次B样条是具有多项式阶数为3的一种B样条类型。

  3. 如果在一个控制点上放置足够多的控制点,则样条将变为夹紧状态并通过这些控制点。所需节点数取决于曲线的阶数,并且会在该点处破坏曲线的连续性。


3
我刚刚发现在scipy中可以使用平滑因子s来确定曲线是否通过所有控制点。这意味着B样条可以根据节点的数量选择是否通过所有控制点。你们的答案基本上是一样的,谢谢! - yu2014ol

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