모바일프로그래밍/Android
Interpolation(보간법) 수식
플라스틱라디오
2012. 1. 6. 03:17
Interpolation 수식을 이용하여 프레임 애니메이션을 구현하면 서서히 가속하거나 감속하는 애니메이션을 만들 수 있습니다. Interpolation 수식에는 여러 방식이 있습니다.
부동소수점 연산을 이용한 프레임 의존적인 감속 보간 |
부동소수점 연산을 이용하는 경우 Euler 보간법과 달리 지수 함수를 사용하지 않기 때문에 CPU에 부담을 덜 줍니다. 따라서 감속 보간을 구현할 경우 Euler 보간법 보다 부동소수점 연산을 이용하는 것이 더 효율적입니다.
부동소수점 연산을 이용한 프레임 의존적인 감속 보간에 사용되는 수식은 아래와 같습니다.
F(x) = (x_0 * (weight - 1) + x_final) / weight
x_0 : 시작 좌표
x_final : 마지막 좌표
weight : 기울기의 곡선 처리를 부드럽게 적용하기 위한 가중치 상수
위의 수식을 이용해 소스 상에서 감속애니메이션을 구현하는 방법은 아래와 같습니다.
float weight = 8.0f; //가중치 상수 int n = 600; x_0 = (x_0 * (weight - 1.0f) + x_final) / weight; interpolation_values[interpolation_index++] = x_0; for(int i=0; i<n; i++) { x_1 = (x_0 * (weight - 1.0f) + x_final) / weight; interpolation_values[interpolation_index++] = x_1 - x_0; //x의 변화량을 보간 값으로 저장 x_0 = x_1; }
출처 : 나의별