좌표계 변환 행렬이란 어떤 좌표계의 벡터를 다른 좌표계의 벡터로 변환하는 행렬이다.
예를 들어 설명하겠다. 아래 그림을 보자.
A가 원점인 좌표계를 A좌표계, B가 원점인 좌표계를 B좌표계 라고 하자. 그리고 A좌표계의 수직 단위벡터를 u1, 수평 단위벡터를 v1, B좌표계의 수직 단위벡터를 u2, 수평 단위벡터를 v2라고 한다.
이때 A좌표계의 위치벡터 AM(x, y)을 B좌표계의 위치벡터 BM(X, Y)로 변환하려고 한다.
AM은 어떤 값 x1과 y1을 각각 u1과 v1에 곱한 AM = x1*u1 + y1*v1 로 표현할 수 있을 것이다. 마찬가지로 BM = x2*u2 + y2*v2로 표현할 수 있다. 그런데 마찬가지로 u1도 어떤 값 ux와 uy를 u2, v2에 곱한 u1 = ux*u2 + uy*v2로 표현할 수 있고, v1 = vx*u2 + vy*v2 로 표현할 수 있다.
그리고 벡터 AM = AB + BM 이다.
즉 AB + BM = AM = x1*(ux*u2 + uy*v2) + y1*( vx*u2 + vy*v2) 가 된다. 그리고 이 식을 u2, v2에 대하여 묶으면, 즉 B좌표계로 표현하면 (x1*vx + y1*vx)*u2 + (x1*vy + y1*vy)*v2 가 된다. 그런데 AB + BM에서 BA를 더하면 우리가 구하고싶었던 BM이 된다. BA = Qx* v2 + Qy *u2라고 하자.
그럼 BM = (x1*vx + y1*vx + Qx)*v2 + (x1*vy + y1*vy + Qy)*u2 가 된다.
즉 B좌표계의 M(X,Y)는 M(x1*vx + y1*vx + Qx, x1*vy + y1*vy + Qy)가 된다.
그럼 (x,y)를 (x1*vx + y1*vx + Qx, x1*vy + y1*vy + Qy)로 변환해주는 행렬을 알아보자. 근데 2차원이 아닌 3차원 으로 확장시켜보자. 대충 생략하고 결과만 보자.