【发布时间】:2012-04-08 12:49:27
【问题描述】:
我有一系列点,并且我有一个应该沿着这些点描述的路径移动的对象。
我知道我需要根据时间找到相应的段,但我不知道如何精确地做到这一点。
请注意,沿路径的速度应该是恒定的,因此您必须考虑路段的距离。
【问题讨论】:
标签: algorithm path geometry pseudocode
我有一系列点,并且我有一个应该沿着这些点描述的路径移动的对象。
我知道我需要根据时间找到相应的段,但我不知道如何精确地做到这一点。
请注意,沿路径的速度应该是恒定的,因此您必须考虑路段的距离。
【问题讨论】:
标签: algorithm path geometry pseudocode
这样的?要查找特定时间的片段,请遍历所有片段,添加片段的长度,直到到达目标时间。
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
【讨论】:
在开始之前为每个点分配时间点:第一个点得到 time=0,每个下一个点得到 time[i+1]=time[i]+distance(i,i+1)/velocity。
那么对于每个时刻你可以通过以下方式计算位置:
【讨论】: