안녕하세요
오늘은 선형보간법에 대해 알아보도록 하겠습니다.
선형 보간법이란
위와 같이 시작 점과 끝 점이 있을때
시작점을 0 으로 놓고 끝점을 1로 놓아 그 사이의 점들을 실수값으로 보간처리 하는것을 말합니다.
이렇게 2개의 점을 보간 처리 하면 0부터 1사이에는 셀수 없는 점들이 존재 하게 됩니다.
이러한 것을 수식으로 나타내면
g(t) = y0 * (1.0 - t)+ y1*t;
와 같으며 여기서 t는 시간을 나타내고
y0 은 시작점 ,y1 은 끝점 g(t) 는 시간에 따른 위치 값이 되겠습니다.
이러한 공식을 사용해서
원하는 보간된 결과값 = 시작값* (1.0 - 알고자하는 상대값) + 끝값 * 알고자하는 상대값;
을 해주면 됩니다
이제 이러한 수식을 이용해서 게임에 적용시키는 예제를 들어보도록 하겠습니다.
게임에서 HP 나 MP 를 표현할때 를 예로 들자면
우선 필요한 정보는
현재 HP , 최대 HP
HP바의 시작 위치, HP 바의 끝 위치가 되며
현재 HP 를 알고자 하는 상대값으로 변환하고
float fHp = nNowHp/nMaxHp; // 현재 hp 에서 최대 hp로 나누면 현재 hp의 비율이 나옵니다
(0 과 1 사이의 비율)
이제 이 비율을 선형 보간 공식에 대입해 줍니다
int nPosition = nStartPos*(1.0 - fHp ) + nEndPos*fHp;
이렇게 나온 nPosition 의 값 에 따라 HP 바를 그려주면 됩니다.
[출처] 선형보간법(linear Interpolation)|작성자 NPCmaster
'프로그래밍' 카테고리의 다른 글
BMP 구조4 (0) | 2013.05.14 |
---|---|
스마트 포인터 (0) | 2013.05.14 |
Hexagon (0) | 2013.05.14 |
palindrome 회문 (0) | 2013.05.14 |
프로그램 언어의종류와 특징 (0) | 2013.05.14 |