2012-04-27 5 views
0

私は点A(0,0)と点b(0,100)を持ち、遷移時間はX msです。私は、与えられたX msの時間内に私のオブジェクト形式の点AをBに移動する必要があります。助けてください。いくつかの疑似コードが役に立つでしょう。Javaは一定期間にわたって2点間の遷移を計算する

参照のための私のコードは:

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

+0

時間の測定方法によって異なります。 'startTime = System.currentTimeMillis()'で始めるとしましょう。 'currentTime = System.currentTimeMillis() - startTime'、' totalTime = X'(ここで、Xは望ましい時間の長さをミリ秒で表します)これは 'System.currentTimeMillis()'が 'startTime'と' startTime + X'、 'currentTime'は0とX(== totalTime)の間にあり、私の答えの条件を満たす – Attila

+0

私はまだ時間の計算が正しいとは思わない。上記のオリジナルのコードを私の質問を編集して掲載しました。元のコードを見て、私が間違っている場所を指摘してください。 – nishMaria

関連する問題