Math 具有两个以上点的Slerp

Math 具有两个以上点的Slerp,math,3d,geometry,interpolation,Math,3d,Geometry,Interpolation,在球体上两点之间插值的正确方法是使用slerp 如何在球体上的两个以上点之间进行插值?那么,求一组在球面上具有不同权重的点的和 当角度较大时,简单地将点与它们的权重相乘求和然后对结果进行归一化是不够精确的。我们需要“真实”的球面插值。我看到的问题是: Slerp提供恒定速度。也就是说,插值参数中的给定增量在球体上为您提供相同的距离,无论您位于[0,1]范围的何处 不幸的是,因为球体是弯曲的,所以不能对多个插值参数执行此操作。您需要放弃恒定速度,或者放弃使用多个参数进行插值 您可能会找到一个插值函

在球体上两点之间插值的正确方法是使用slerp

如何在球体上的两个以上点之间进行插值?那么,求一组在球面上具有不同权重的点的和

当角度较大时,简单地将点与它们的权重相乘求和然后对结果进行归一化是不够精确的。我们需要“真实”的球面插值。

我看到的问题是:

Slerp提供恒定速度。也就是说,插值参数中的给定增量在球体上为您提供相同的距离,无论您位于[0,1]范围的何处

不幸的是,因为球体是弯曲的,所以不能对多个插值参数执行此操作。您需要放弃恒定速度,或者放弃使用多个参数进行插值


您可能会找到一个插值函数,它不是恒定速度,但仍然满足您的要求。但由于上述问题,我认为它不会直接和对称地对应于一维slerp。

我在math.stackexchange.com上问了这个问题,有人找到了一篇文章,正好描述了这一点。这里是:

恒定速度是我想要的。我将数字滤波器应用于方向向量,即单位球体上的点。响应需要与陀螺仪上滤波器的响应相同(陀螺仪直接以角度运行)。但是当角度变大时,会有明显的差异。哦,我想我明白了:你不想要多维参数空间,你想要过滤一个时间序列。我想我的答案与这个问题无关(原始答案是为其他好奇的人提供的。