【问题标题】:Linear Interpolation More Linearly线性插值更线性
【发布时间】:2017-02-22 00:37:49
【问题描述】:

我很好奇有没有办法实现这个功能:

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

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

【问题讨论】:

  • 您使速度与距离成正比,因此完成行程总是需要一个单位的时间。如果您想要固定速度,请这样说:startPoint + velocity*time

标签: c++ linear-interpolation


【解决方案1】:

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

确保在插值生命周期内每次调用的 startPoint 和 endPoint 变量都相同,并且只有 time 变量在增加。

【讨论】:

  • 你明白了!非常感谢!!
猜你喜欢
  • 2013-07-27
  • 1970-01-01
  • 1970-01-01
  • 2020-04-22
  • 1970-01-01
  • 2016-07-27
  • 2011-05-20
  • 2010-10-22
相关资源
最近更新 更多