我正在从事一个项目,该项目涉及从一组定义的点(数万个点)创建样条曲线。
我首先为前 1000 个点创建一条样条曲线,并用箭头模拟该路径上的“驾驶”(它是使用样条曲线上的切线和当前点绘制的)。当我接近路径的尽头时,我会采用接下来的 1000 个点并创建一个新的样条曲线并继续我的“驾驶”。
我遇到的问题是样条线(以前的样条线和当前样条线)最后不匹配。不匹配是指它们没有相同的切线(一阶导数不匹配),并且前一个样条的最后一点和新样条上的第一个点之间存在差异(这是因为我没有使用插值样条但平滑样条 - 见下面的注释1)。当切换到新创建的样条线时,这会使我的箭头在样条线的末端“跳跃”。
注意1 :我没有使用插值样条线。我正在使用平滑样条曲线。有关更多详细信息,请参见此处和此处。这意味着作为输入给出的点集可能不在结果样条线上(在我的情况下,它们非常接近样条线 - 但通常不在样条线上)。
注意2:使用插值样条是不可能的,因为用于计算样条的数据中有很多噪音。
注意 3:在具有 2 GB RAM(我们的应用程序目标平台)的3Ghz PC 上计算整个点集的样条曲线需要很长时间(超过 30 秒);所以这样做也是不可能的。
我有兴趣在切换样条曲线时克服这种不需要的“跳跃”。
所以我的问题是:
- 是否有一些方法/算法可以平滑“跳转”/过渡到新样条?
- 我可以用特殊类型的样条来克服这个问题吗?(这是我迄今为止尝试过的,没有显着改善)。
谢谢你的任何想法,
尤利安