我有一系列点,并且我有一个应该沿着这些点描述的路径移动的对象。
我知道我需要根据时间找到相应的段,但我不知道如何精确地做到这一点。
请注意,沿路径的速度应该是恒定的,因此您必须考虑路段的距离。
我有一系列点,并且我有一个应该沿着这些点描述的路径移动的对象。
我知道我需要根据时间找到相应的段,但我不知道如何精确地做到这一点。
请注意,沿路径的速度应该是恒定的,因此您必须考虑路段的距离。
像这样的东西?要在特定时间查找段,请遍历所有段,添加段的长度,直到到达目标时间。
public int findSegment(int [] segments, int time) {
time_so_far = 0;
int i = 0;
while (time_so_far < time) {
time_so_far += segments[i];
i++;
}
return i-1;
}
如果段长度是距离,并且您正在考虑的速度不是 1,那么您需要这样做time_so_far += segments[i] / speed
Beofre start 为每个点分配时间点:第一个点得到 time=0,每个下一个点得到 time[i+1]=time[i]+distance(i,i+1)/velocity。
然后对于每个时刻,您可以通过以下方式计算位置: