❓ 선형 보간법
끝점의 값이 주어졌을 때 그 사이에 위치한 값을 추정하기 위하여 직선 거리에 따라 선형적으로 계산하는 방법
- a(x0, y0), b(x1, y1)이라고 가정했을 때, 파란색 점인 c(x, y) 위치를 추정하기 위하여 사용
- p1, p2 사이에 있는 점 p의 값을 추정하기 위해 사용
결과적으로 두 점의 직선 상에 있는 점을 p라고 했을 때, p의 x좌표만 알면 비율을 통해 y좌표도 알 수 있음.
💡 참고한 블로그 정리 (아래에 링크있습니다.)
- a와 b 직선 사이에 있는 점 c의 x좌표를 4.9라고 임의로 지정
- 전체 거리 d = b-a = 5
- 시작점(a)과 c 사이의 거리 d1 = 4.9-2 = 2.9
- d1에 대한 d의 배율 : d1/d = 2.9/5 = 0.58
▶ a로부터 b 방향의 직선으로 전체거리의 58%만큼 움직이면 c가 나온다.
이 배율을 이용해, y좌표도 구할 수 있다.
- 전체 거리 d' = b-a = 3
- 시작점 + (d' * 0.58) = 1 + (3*0.58) = 2.74
▶ 즉, c의 y 좌표는 2.74이다.
❓ Unity 내에서의 선형보간 함수
종류
Mathf.Lerp() // 숫자 간
Vector2.Lerp() // Vector2 간
Vector3.Lerp() // Vector3 간
Quaternion.Lerp() // Queternion 간
- 파라미터는 3개로 구성되어 있음.
- a : 일차 함수의 시작값
- b : 일차 함수의 끝값
- t : 얻고 싶은 값의 위치 (0~1 사이의 비율)
예시
Vector2 pos = Vector2.Lerp(new Vector2(0, 0), new Vector2(100, 100), 0.5);
- return : Vector2(50, 50)
Vector3의 경우, a + (b - a) * t를 통해 보간된 값이 반환됨
🌐 참고 사이트
https://docs.unity3d.com/ScriptReference/Vector3.Lerp.html