私には一連のポイントがあり、これらのポイントによって記述されたパスに沿って移動する必要があるオブジェクトがあります。
時間に応じて対応するセグメントを見つける必要があることは知っていますが、これを正確に行う方法がわかりません。
速度はパスに沿って一定である必要があるため、セグメントの距離を考慮する必要があることに注意してください。
私には一連のポイントがあり、これらのポイントによって記述されたパスに沿って移動する必要があるオブジェクトがあります。
時間に応じて対応するセグメントを見つける必要があることは知っていますが、これを正確に行う方法がわかりません。
速度はパスに沿って一定である必要があるため、セグメントの距離を考慮する必要があることに注意してください。
このようなもの?特定の時間のセグメントを見つけるには、すべてのセグメントをループし、ターゲット時間に達するまでセグメントの長さを追加します。
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は、各ポイントに時間モーメントを割り当て始めます。最初のポイントはtime = 0を取得し、次のすべてのポイントはtime [i + 1] = time [i] + distance(i、i + 1)/velocityを取得します。
次に、各時点で、次の方法で位置を計算できます。