좌표계 변환 행렬 완전 정복 – A 좌표계에서 B 좌표계로의 변환 원리, 수식 도출, 행렬 구성, 위치/방향 벡터의 의미까지
좌표계 변환(Coordinate Transformation)은 어떤 점이나 벡터가 한 좌표계(A) 기준에서 정의되어 있을 때, 이를 다른 좌표계(B) 기준에서 어떻게 표현할지를 결정하는 과정입니다.
예를 들어, 점 M이 A 좌표계에서 (x, y, z)라는 좌표를 갖고 있다면, B 좌표계에서 같은 점 M은 다른 위치 (X, Y, Z)로 표현됩니다.
이 두 좌표계 간의 관계를 수학적으로 정리한 것이 좌표계 변환 행렬이며, 기준 벡터(u, v, w)와 기준점의 위치(Qx, Qy, Qz)를 기반으로 구성됩니다.
이는 3D 그래픽스에서 다음의 좌표계 변환 과정에 반드시 사용됩니다:
로컬(Local) → 월드(World) → 뷰(View) → 투영(Projection) → 스크린(Screen)
각 단계마다 행렬 곱을 통해 변환이 수행되며, 이 전체 파이프라인이 제대로 동작하기 위해 좌표계 변환의 원리를 정확히 이해해야 합니다.
AM = x·u + y·v + z·wBM = X·U + Y·V + Z·W두 좌표계에서 같은 점을 다르게 표현하고 있으며, 우리가 원하는 것은 B 기준의 표현(BM)입니다.
AM은 AB + BM 이므로:
AM = AB + BM → BM = AM - AB = AM + BA하지만 이 벡터 표현을 B 좌표계 기준으로 바꾸려면, 단위 벡터(u, v, w)를 B 좌표계 기준의 단위 벡터(U, V, W)로 다시 표현해야 합니다.
u = ux·U + uy·V + uz·W
v = vx·U + vy·V + vz·W
w = wx·U + wy·V + wz·W이를 이용해 AM 전체를 B 기준으로 정리하면:
AM = x·u + y·v + z·w
   = x·(ux·U + uy·V + uz·W) +
     y·(vx·U + vy·V + vz·W) +
     z·(wx·U + wy·V + wz·W)
   = (xux + yvx + zwx)·U +
     (xuy + yvy + zwy)·V +
     (xuz + yvz + zwz)·WBM은 여기에 A 기준점의 위치(BA = Qx, Qy, Qz)를 더해줌으로써 완성:
BM = (xux + yvx + zwx + Qx)·U +
     (xuy + yvy + zwy + Qy)·V +
     (xuz + yvz + zwz + Qz)·W위 결과를 행렬로 정리하면:
v = [x y z 1]M =
[ ux  uy  uz  0
  vx  vy  vz  0
  wx  wy  wz  0
  Qx  Qy  Qz  1 ]V = v × M = [X Y Z 1]이 변환은 A 기준에서 정의된 점 v를 B 기준으로 표현한 점 V를 반환합니다.
[x y z 1][x y z 0]✅ 즉,
1은 위치를 의미하고,0은 방향을 의미함
[x y z 1]은 위치 벡터로 모든 변환(SRT)이 적용됨[x y z 0]은 방향 벡터로 이동 성분 제외한 변환만 적용