我有一個點序列,我有一個對象應該沿着這些點描述的路徑移動。沿平均速度點的路徑移動
我知道我需要根據時間找到相應的分段,但我不知道如何精確地做到這一點。
請注意,沿着路徑的速度應該是恆定的,因此您必須考慮段的距離。
我有一個點序列,我有一個對象應該沿着這些點描述的路徑移動。沿平均速度點的路徑移動
我知道我需要根據時間找到相應的分段,但我不知道如何精確地做到這一點。
請注意,沿着路徑的速度應該是恆定的,因此您必須考慮段的距離。
這樣的事情?要在特定時間查找分段,請循環所有分段,添加分段的長度,直到達到目標時間。
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開始時間分配給時刻各點:第一點得到時間= 0,每下一個點得到時間[i + 1] =時間[i] +距離(i,i + 1)/速度。
然後,對於每個時間瞬間就可以以下面的方式計算位置: