我在 3 维空间中有 N 个点。我需要用一条线加入他们。但是,如果我用一条简单的线来做,它就不平滑而且看起来很丑。
我目前的方法是使用 Bezier 曲线,对 4 个点使用 DeCasteljau 算法,并为我的数据集中的每组 4 个点运行该算法。但是,问题在于,由于我分别在 1-4、5-8、9-12 等点上运行它,因此 4-5、8-9 等点之间的线并不平滑。
我还寻找其他方法;具体来说,我发现这篇关于 Catmull-Rom 样条的文章,这似乎更适合我的目的,因为曲线穿过所有控制点,不像贝塞尔曲线。所以我几乎开始实施它,但后来,我在那个网站上看到这个公式有效"assuming uniform spacing of control points"
。我的问题不是这样。
所以,我的问题是,我应该使用什么方法——Bezier、Catmull-Rom,还是完全不同的方法?如果是贝塞尔曲线,那么如何解决 4-5、8-9 等之间的不平滑问题?如果Catmull-Rom,如果点的间距不均匀,为什么公式不起作用,我需要什么?
编辑:我现在很确定我想要 Catmull-Rom 样条,因为它通过了每个控制点,这对我的应用程序来说是一个优势。因此,我想回答的主要问题是为什么我提供的链接上的公式不适用于非均匀间隔的控制点?
谢谢。