2012-04-27 75 views
0

我有点A(0,0)和点b(0,100),我有一个X ms的转换时间。我需要在给定的X毫秒时间内将我的对象形式点A移动到B.请帮忙。一些伪代码会有帮助。Java计算一段时间内两点之间的转换

我参考代码:

float time= (float)totalTime/halfTransitionTime; 
    new.x = start.x + (end.x - start.x) * time; 
    new.y = start.y + (end.y - start.y) * time; 

,但我不是,如果我的时间计算是正确的,因为我没有得到期望的输出。请帮忙。

在上面的类中,translateCalc()是我进行线性插值计算的方法。我似乎没有正确的计算。请帮助

回答

1

你的线性插值计算是正确的,但更改时间计算:

float time= ((float)currentTime)/totalTime; 

这会给你0和1之间的值(假设currentTime是0和totalTime之间),这将导致在startend之间的平滑过渡

+0

在上面的代码中,是currentTime = System.currentTimeMillis()和总时间=从点A移动到点B的时间?当我按照这个计算时,它似乎不起作用。请帮忙。 – nishMaria 2012-04-27 12:55:13

+0

这取决于你如何衡量时间。假设你从'startTime = System.currentTimeMillis()'开始。然后'currentTime = System.currentTimeMillis() - startTime','totalTime = X'(其中X是所需的时间长度,以毫秒为单位)这意味着只要'= System.currentTimeMillis()'在'startTime'和' startTime + X','currentTime'介于0和X(== totalTime)之间,满足我在答案中的条件 – Attila 2012-04-27 13:54:03

+0

我似乎还没有得到正确的时间计算。我已经通过编辑我的问题发布了我的原始代码。请看看原始代码并指出我出错的地方。 – nishMaria 2012-05-02 08:37:46

相关问题