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; }
출처 : 나의별
'모바일프로그래밍 > Android' 카테고리의 다른 글
해상도에 따른 레이아웃 폴더와, 이미지 폴더 분기 (0) | 2012.11.08 |
---|---|
Target, minSdkVersion (0) | 2012.11.08 |
Proguard 적용하기 (1) | 2012.02.06 |
[펌] 성능을 위한 설계 (0) | 2012.01.13 |
this 사용에 따른 메모리 릭(Memory Leaks) (0) | 2012.01.13 |
Custom Widget에 사용자 속성 정의 및 사용하기 (0) | 2012.01.05 |
Searchable 리소스 (0) | 2011.12.28 |
플래그먼트(Fragment) (0) | 2011.12.20 |
안드로이드 지원 패키지(Android Support Package) (0) | 2011.12.17 |
Activity의 생명 주기 (0) | 2011.12.17 |