拡大縮小(2)
考えてみれば、を1ずつ増やす形にするために調節したのだから、になるのは当たり前だ。
とりあえず、これでは1ずつ増やせばいいようになった。
今の状態をプログラムで書いてみると、次のようになるだろう。
float sx = 0; int dx = 0; float sa = sw / (float)dw; while( true ){ if( dx >= dw ) break; dst[ dx ] = src[ (int)sx ]; dx += 1; sx += sa; }
を求める式を
と定義すれば、の増分は、
になる。同様に、の式を、
と定義すれば、の増分は、
となるので、それを毎ループ足しているだけだ。
しかし、float が邪魔になっている。何とかこれを除ける方法はないだろうか