Construct

보간함수 3종 예제 (lerp, qarp, cubic)

by Softblow posted Dec 26, 2012
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

interpolation example.png



interpolation example.cap 


상세설명



lerp(A, B, %)

→ A, B 사이의 % 값을 돌려줌. (수학적으로는, A + (B-A)×% 죠.)

→ % 라고 적어놨지만 % 가 아니라 %/100, 즉 0 에서 1 사이의 비율 값입니다. 이해를 돕기 위해 그만...

* %의 범위는 0 에서 1 사이가 아니어도 됩니다. 위의 수식 보이시죠?

→ Linear Interpolation (선형 보간)

→ 보통 부드러운 이동을 위해 lerp(목표 위치, 현재 위치, 0.1^timedelta) 형태로 쓰입니다.

하지만 왜 저런 꼴인지는 도무지 모르겠네요.

* timedelta = dt (컨스트럭트 2) = 프레임 (tick) 사이의 시간간격)


qarp(A, B, C, %)

→ lerp( lerp(A, B, %) , lerp(B, C, %), %)

→ 수학적으로는 잘 모르겠습니다.

→ A, C 사이의 직선이 B로 인해 곡선으로 변경된 꼴입니다.

→ Quadratic interpolation (이차 보간. 수학 용어랑 동일할 지는 모르겠습니다.)


cubic(A, B, C, D, %)

→ lerp( qarp(A, B, C, %), qarp(B, C, D, %), %)

→ 수학적으로는 역시 잘 모르겠습니다.

→ B, C 로 인해 지렁이 형태의 곡선으로 변경된 꼴입니다.

→ Cubic interpolation (뭐라고 해야하는지...)


원문에도 언급된 거지만, lerp의 활용법은 다양합니다. 무엇이든 부드럽게 변경할 게 있다면 쓰면 되는거죠.


코멘트



원래 포럼쪽에 이런 예제 (with 슬라이더) 가 있었습니다. 하지만 box.net 이라 그런지 자료가 날라갔더라구요.

그래서 제가 한번 만들어보았습니다. (원문링크) 사실 저도 필요해서말이죠. 슬라이더는 귀찮아서 생략.


역시나 자세한 내용은 위키의 System Expressions 항목이나, 컨스트럭트 2 의 경우 공식 메뉴얼을 참조합시다. 아직 모든 함수가 컨스트럭트 2 에서 지원되는지는 잘 모르겠습니다.


ps. 언제나와 같이 카페쪽과 동시 업로드입니다. 거긴 아무도 없...


Who's Softblow

?
1779B5474ED8AC8A40E791
C2 유저입니다. 클래식 후기부터 배우기 시작했습니다. 즉, 클래식도 쓸 줄 압니다.
RPG 메이커 계열과 게임 메이커 계열은 전혀 다루지 못합니다.
공학도의 입장에서는 초보적인 C++ 과 SDL 입문 단계 쯤 됩니다.
Daum 카페 건설자들.CAP 을 개설했고, 현재는 운영을 맡고 있습니다.
멋진 게임을 만들고 싶고, 1인 인디가 희망사항이지만 아직은 멀었군요.