본문 바로가기
프로그래밍

보간

by violetoz 2013. 5. 14.

안녕하세요

오늘은 선형보간법에 대해 알아보도록 하겠습니다.

선형 보간법이란

 

위와 같이 시작 점과 끝 점이 있을때

시작점을 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 바를 그려주면 됩니다.

'프로그래밍' 카테고리의 다른 글

BMP 구조4  (0) 2013.05.14
스마트 포인터  (0) 2013.05.14
Hexagon  (0) 2013.05.14
palindrome 회문  (0) 2013.05.14
프로그램 언어의종류와 특징  (0) 2013.05.14