線形補間関数

// start から end を maxFrame で分割して、frame 番目の値を返す。
// frame == 0 の場合は start が返されて、frame == maxFrame の場合は end が返される。
// start < end じゃなくてもいいし、
// frame が 0 未満だったり maxFrame を超えてたりしても大丈夫。
// ただし maxFrame が 0 だったらあぼーん
int LinearInterpolation( int start , int end , int frame , int maxFrame ){
    return (int)((long)(end - start) * frame / maxFrame + start);
}

これ結構便利。
もうちょい拡張して、2次補間関数とか任意の式で補間する関数とか汎用的な補間クラスとか作ったり出来そう。