二次元データの補間 [コンピュータ]
与えられたデータを実際に使おうとすると、中間点での値が必要になるからどの場合でも補間は必須だ。スプラインとかラグランジェとか高度な補間の仕方はもあるが、一番簡単なのは直線近似つまり点間を直線で結んでデータはその上にあるとすることだ。
これは一次元の話だが、二次元データでも同じように平面近似が出来るかというと、実はそう簡単ではない。直線が2点で決まるように平面は3点で決まってしまうからだ。データが三角メッシュで与えられているならばそれでいい。しかし、大抵の場合四角メッシュで与えられる。それが普通だ。
だから4点をもとにした補間が必要なのだが、4点で決まる面は図のように曲面にならざるを得ない。平面で近似しようとすると一点余ってしまう。強引に3点だけを使うようにするとメッシュ点を切り替える境界で飛びが出来ることになる。4点の場合「ねじれ」を考慮しなければならず、直線近似できないのだ。
では、どうすればいいかというと、「定数」「x項」「y項」「xy項」の4つにしてそれぞれの係数を4点のデータで決めるとよい。一番簡単な、縦横の間隔dx,dyのメッシュでデータが与えられている場合の補間式を掲げておこう。
V0=(1 -(x-x0) /dx-(y-y0)/dy +(x-x0)(y -0y)/dx/dy)*val(0)
V1=((x -x0)/dx-(x -x0)(y-y0)/dx/dy)*val(1)
V2=((y -y0)/dy-(x -x0)(y-y0)/dx/dy)*val(2)
V3=( (x-x0)(y -0y)/dx/dy*val(3)
Val(x,y)=v0+v1+v2+v3