在java中计算时间和速度的距离

时间:2013-02-11 12:50:03

标签: java

我有多个速度(以KM / h为单位)和时间(在日期中)的记录,我想知道旅行的总距离是多少。时间和速度正在发生变化。这有没有java algorythm?

4 个答案:

答案 0 :(得分:1)

只需计算每个随后的一对值:

distance = previousVelocity * timeDifference + (currentVelocity - previousVelocity) * timeDifference / 2

timeDifference = currentTime - previousTime

然后总结一下,然后你去。这是假设恒定的加速和减速。

答案 1 :(得分:1)

如果你有速度和时间的数据点,你需要计算点之间的平均速度(这可能不准确,但它是你可以用数据做的最好的)并乘以时间。请注意,我使用秒作为时间测量。你说你有日期,所以你应该能够轻松转换,如果你的时间很接近,可能最好使用毫秒。

假设您有以下数据点;

Time speed
0    12
4    15
7    13
11   18
17   21

第1点和第2点之间的平均速度是;

12 + 15 / 2 = 13.5

,时差为4秒。您可以做出的最佳计算是这些数据点之间的距离为

4 * 13.5 * (1000 / 3600) = 15 metres

(1000/3600)位将km / h转换为m / s。

您的算法需要对每对数据点执行相同的计算,并累计行进的总距离。

答案 2 :(得分:0)

此处没有预定义的“Java算法”。您必须通过将所有ds = v * dt相加来计算整个距离。 ds是增量距离,v是速度和dt增量时间。循环会很好。 除此之外,您可以确定平均速度并进行一次乘法。

答案 3 :(得分:0)

基本上,您需要绘制点之间的曲线(x轴=时间,y轴=速度)并计算该图下的面积。显然这取决于您选择的插值(直线,贝塞尔曲线,三次样条等)。

This看起来像一个有趣的插值库列表。

似乎还有一个javax.media.jai.Interpolation组件。