Mathf.Lerp

2015. 2. 3. 14:44C# And Unity


lerp 는 선형보간법(Linear Interpolation) 함수 이다.


선형 보간법이라는 용어 자체로는 이해하기 힘드니 간단히 말로 풀어보면 하나의 점에서 다른 점까지 이동할 때 그 중간지점을 알아내는 방법이다. 이것은 우리가 프로그램 상에서 애니메이팅을 할 때 유용하게 사용할수 있다.


lerp.png 


에프터 이펙트에서 애니메이션을 하기 위해서 우리는 키프레임을 사용한다. 처음 키와 두번째 키를 잡아주면 중간 과정은 자동으로 생성되는 것이다. 에프터 이펙트에서는 이러한 중간 과정을 만들어 내기 위해서 다양한 보간법을 사용하게된다.


이번에 사용될 lerp는 선형 보간법 이다. 직선의 움직임에 대한 보간 방법이다.


기본 파라미터 값은 아래와 같다.


lerp(새로운 좌표,  기존 X좌표, 분할 비율);


1
2
3
4
5
6
7
8
9
10
11
12
float xpos = 0;
 
void setup()
{
  size(200, 100);
}
 
void draw()
{
  xpos = lerp(xpos, mouseX, 0.1);
  ellipse(xpos, 50, 15, 15);
}


위의 코드를 살행하고 마우스를 스케치의 오른쪽으로 움직이면 해당  mouseX 좌표까지 10% 비율로 원이 움직이게 된다.


screenshot_34.png 


처음에는 0에서 마우스 까지의 길의 10%에 해당하는 위치 만큼 움직이고 다름 프레임은 10%가 줄어든 거리에서 다시 10%에 해당하는 거리만큼 움직이게 된다. 이렇게 길이가 점점 줄어 들면서 프레임당 움직이는 거리가 줄어들면서 속도도 줄어들게 된다.


참고자료 : http://blog.jidolstar.com/59