Quick Reference
두 점 A, B 사이의 선형 보간은 P(t)=(1−t)A+tB입니다. 계수 합은 1이며, t가 0부터 1까지이면 선분 안에, 그 밖이면 선분을 연장한 직선 위에 있습니다. 같은 좌표계의 실수 좌표를 사용합니다.
Lerp(A,B,t) = A + t(B-A)
A=(1,2), B=(5,4)
t=0 → (1,2)
t=0.25 → (2,2.5)
t=1 → (5,4)
t=1.5 → (7,5) : 외삽점의 가중치와 원점
벡터의 선형 결합은 계수에 제한 없이 만들 수 있습니다. 반면 점 Pᵢ를 섞어서 또 하나의 위치를 표현할 때에는 P=ΣaᵢPᵢ, Σaᵢ=1인 아핀 결합을 사용합니다. 계수 합이 1이면 기준 원점을 바꾸어도 같은 기하학적 위치를 표현합니다.
모든 점의 좌표를 t₀만큼 이동시키면 결과도 t₀만큼 이동해야 합니다.
Σaᵢ(Pᵢ+t₀) = ΣaᵢPᵢ + (Σaᵢ)t₀
Σaᵢ=1이면: P′=P+t₀
Σaᵢ=0이면: 이동 성분이 사라져 방향 벡터로 작동예를 들어 중점 (A+B)/2는 이동을 한 번 받습니다. A+B를 위치로 쓰면 이동을 두 번 받아 원점 선택에 따라 다른 기하학적 결과가 됩니다. 점의 차이 B−A는 계수 합이 0이므로 방향입니다. 동차좌표에서 점의 마지막 성분을 1, 방향의 성분을 0으로 두는 규칙과 연결됩니다.
아핀 결합과 볼록 결합
아핀 결합은 음수 계수도 허용합니다. 계수 합이 1이고 모든 계수가 0 이상이면 볼록 결합이며, 결과는 점들이 만드는 볼록 껍질 안에 있습니다. 두 점이면 선분, 일직선에 놓이지 않은 세 점이면 삼각형입니다.
A=(0,0), B=(4,0), C=(0,2)
0.5A + 0.25B + 0.25C = (1,0.5) : 삼각형 내부
-A + B + C = (4,2) : 계수 합은 1, 삼각형 외부가중치 합이 0이 아닌 값을 합으로 나누면 합을 1로 맞출 수 있습니다. 하지만 합이 0이거나 서로 상쇄되어 매우 작으면 이 정규화는 성립하지 않거나 불안정합니다. 음수 계수까지 자동으로 사라지는 것도 아닙니다. 삼각형의 위치에서 계수를 역으로 구하는 계산은 무게중심좌표에서 다룹니다.
변환과 보간의 순서
아핀 변환 F(x)=Mx+b는 아핀 결합을 보존합니다. 같은 가중치로 먼저 보간한 뒤 변환하거나, 모든 끝점을 변환한 뒤 보간해도 같습니다.
F(ΣaᵢPᵢ) = MΣaᵢPᵢ + b
ΣaᵢF(Pᵢ) = MΣaᵢPᵢ + (Σaᵢ)b
Σaᵢ=1이면 두 식이 같음
A=(1,2), B=(5,4), t=0.25, F(x,y)=(2x+3,y-1)
F(Lerp(A,B,t)) = F(2,2.5) = (7,1.5)
Lerp(F(A),F(B),t) = Lerp((5,1),(13,3),0.25) = (7,1.5)원근 투영 후 w로 나누는 연산에는 이 등식을 그대로 적용할 수 없습니다. 투영된 좌표에서의 가중치는 투영 전 가중치와 달라지므로 무게중심좌표의 원근 보정이 필요합니다.
진행률과 반복 갱신
고정된 시작점 A에서 끝점 B로 T초 동안 이동하려면 경과 시간 τ를 진행률로 바꿉니다. T는 양수여야 합니다.
t = clamp(τ/T, 0, 1)
P = Lerp(A,B,t)
A=0, B=10, T=2초
τ=0, 0.5, 1, 1.5, 2초 → P=0, 2.5, 5, 7.5, 10clamp는 구간 밖에서 멈추려는 선택입니다. Lerp 수식 자체는 t를 제한하지 않습니다. t가 시간에 비례하고 A와 B가 고정되어 있으면 속도도 일정합니다.
매번 현재 위치를 시작점으로 다시 넣는 P다음=Lerp(P현재,B,k)는 다른 동작입니다. 고정된 0보다 크고 1보다 작은 k에 대해 오차는 매 갱신마다 1−k배가 됩니다. A=0, B=10, k=0.5이면 0→5→7.5→8.75로 이동하며, 정해진 시간에 일정 속도로 도착하지 않습니다. 갱신 횟수에 따라 결과가 달라져 프레임 간격도 영향을 줍니다.
성분 보간이 보존하지 않는 것
단위 방향 (1,0)과 (0,1)의 중간값은 (0.5,0.5)로 길이가 1이 아닙니다. 반대 방향을 반씩 섞으면 영벡터여서 정규화도 할 수 없습니다. 회전행렬을 성분별로 섞어도 직교성이 유지된다고 보장할 수 없습니다.
위치·스칼라 값의 보간과 회전의 보간을 구분합니다. 자세를 보간할 때는 쿼터니언과 SLERP를 사용하며, 관측 오차가 있는 데이터에 함수를 맞추는 문제는 최소제곱입니다.
참고 링크
2 sources