2012-04-27 86 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