加速式の作り方

投稿者: | 2012年5月22日

はじめに

ここでは、開始点から終了点に移動するとき、加速しながら進む式について説明します。

等速移動

まずは等速移動の式を見てみます。

 a + (b - a) * t / max
  • a:開始点
  • b:終了点
  • t:現在の時間
  • max:終了点に達するまでの時間

となります。

加速移動

加速する式は以下のようになります。

 a + (b - a) * ((t + 1) * t / 2.0) / ((max + 1) * max / 2.0)

なぜこのような式になるのかというと、1からnまでの総和を求める式「(n + 1) * n / 2」を応用しているからです。

こんな感じで加速してくれます

減速移動

減速移動の式は以下のようになります

 a + (b - a) * ((max * 2 - t + 1) * t / 2.0) / ((max + 1) * max / 2.0)