线性插值更线性

Linear Interpolation More Linearly

本文关键字:线性 插值      更新时间:2023-10-16

我很好奇是否有办法使这个函数:

float linearInterpolation(float startPoint, float endPoint, float time)
{
    return startPoint + ((endPoint - startPoint) * time);
}

更线性,因为现在当起点接近其端点时,它会变慢,我只是希望它一路保持相同的速度,而不是减速/加速。如果我需要实现另一个变量或可以做的事情。另一个接受相同变量并输出下一个值的函数也是可以接受的。

在我看来这是一个正确的lerp实现。在没有看到你调用它的代码的情况下,我猜它变慢的原因是你每次(帧?)都用不同的startPoint调用它(调用线性插值的前一个结果会导致这种情况),这将导致它变慢,因为每次调用时插值的距离减少。

确保在插值的整个生命周期中,每次调用的startPoint和endPoint变量是相同的,只有时间变量在增加。