【发布时间】:2015-12-22 13:32:50
【问题描述】:
我正在以每秒 60 次的速度从移动的车辆(游戏中的赛车)接收数据。我想(尽可能准确地)确定车辆穿过某个扇区的时间(沿着轨道在某个指定的目标距离处)。由于更新率有限,我总是会在扇区之前收到一个样本,在扇区之后收到一个样本,所以我需要在这两个点之间进行插值,以找到跨越扇区的时间(介于两者之间)。
我收到的每次更新的数据包含:
- 更新时间
t -
p沿轨道的位置(百分比为 0-1) - 车辆的速度
v
我可以仅使用时间和距离来使用简单的线性插值,但它不够准确。例如,如果交叉前的样本有时间t0和位置p0,交叉后的样本有t1和p1,交叉位置是p,那么交叉时间@987654329 @来自线性插值应该是:
t = t0 + (p - p0) / (p1 - p0) * (t1 - t0)
这是相对简单的 - 它假设一个恒定的速度
v = (p1 - p0) / (t1 - t0)
并使用它来确定从p0 到p 需要多长时间。
但是,我不想假设速度恒定,我拥有两个样本的速度并且它不相等。
如何考虑使插值更准确所需的速度?我假设我需要使用某种二次插值而不是线性,我假设两个样本之间的速度线性变化(因此时间呈二次方),但我看不出我应该如何做到这一点。
【问题讨论】:
标签: interpolation