* 2014년 4월 3일 개발 * 문제 : http://cau.ac.kr/~bongbong/c12/ -> Homework #4 -> Prob2. [Bilinear Interpolation] {{{ #include #include #pragma warning(disable:4996) int computePosition(float, float); float bilinearInterpolation(float*, float, float, int); int main() { float xValue, yValue, a, b; float pointValue[25]; int i, position; printf("two float values x and y (ex: 0.5 1.0) : "); scanf("%f %f",&xValue,&yValue); printf("25 float values for the values at 25 grid points (ex: 1.0 3.5 ...)\n: "); for(i = 0; i < 25; i++) scanf("%f",&pointValue[i]); position = computePosition(xValue, yValue); a = xValue - (int)xValue; b = yValue - (int)yValue; printf("The Value at the coordinate (x,y) is %.3f\n",bilinearInterpolation(pointValue, a, b, position)); system("pause"); return 0; } int computePosition(float xValue, float yValue) { int xposition = (int)xValue + 5*(int)yValue; if(xposition%5 == 4) xposition--; if(xposition>=20) xposition-=5; return xposition; } float bilinearInterpolation(float pointValue[25],float a, float b, int position) { float f12, f34; f12 = a*pointValue[position+1] + (1-a)*pointValue[position]; f34 = a*pointValue[position+6] + (1-a)*pointValue[position+5]; return b*f34 + (1-b)*f12; } }}} ----- [최다인]