我有一系列点,我有一个物体,应该沿着这些点所描述的路径移动。
我知道我需要根据时间找到相应的片段,但我不知道如何准确地做到这一点。
请注意,路径的速度应保持不变,因此您必须考虑段的距离。
答案 0 :(得分:1)
这样的东西?要在特定时间查找细分,循环遍历所有细分,请添加细分的长度,直到达到目标时间。
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
答案 1 :(得分:1)
Beofre开始为每个点分配时刻:第一个点获得时间= 0,每个下一个点获得时间[i + 1] =时间[i] +距离(i,i + 1)/速度。
然后,每次都可以通过以下方式计算位置: