我必须编写一种方法,以一定的速度将一个物体(例如圆圈)从一个坐标移动到另一个坐标.对象必须到达目标点并停止.速度与物体到达该点所需的时间相关(速度= 15等于时间= 15毫秒).如果有人可以帮我解决这里的数学问题,我会很高兴.
以恒定速度从点p0移动到点p1的插值公式为:
p(t) = p0*(1-t) + p1*t
Run Code Online (Sandbox Code Playgroud)
其中t是已缩放处从0开始在端部,以改变为1,时间p,p0以及p1是(x,y)坐标对.由于Java没有内置的方法来编写插值公式,因此您只需将其并行应用于x和y组件.结果是:
t = (time_now - start_time) / total_time;
x = x0*(1-t) + x1*t;
y = y0*(1-t) * y1*t;
Run Code Online (Sandbox Code Playgroud)
这是核心计算.要使对象移动,请按照以下步骤操作:
时间增量可以是由常规的挂钟时间确定的System.getTimeMillis().