벡터 공간(vector space)에서 동차좌표(homogeneous coordinates)는 2차원이나 3차원 공간에 새로운 차원을 추가하여 벡터들을 더 쉽게 표현하고 변환할 수 있게 해준다. 예를 들어, 2차원 공간에서 점 $(x, y)$는 동차좌표계를 사용하면 $(x, y, 1)$로 표현된다.
2차원에서의 동차좌표
2차원에서의 동차좌표는 $(x, y)$ 벡터를 $(x, y, 1)$로 변환한다. 이를 일반적으로 다음과 같이 나타낸다:
v=(xy)→vh=xy1
여기서 $\mathbf{v_h}$는 동차 좌표 벡터(homogeneous vector)를 의미한다.
3차원에서의 동차좌표
3차원에서는 각 벡터에 한 차원을 추가하여 $(x, y, z)$ 벡터를 $(x, y, z, 1)$로 변환한다. 이는 다음과 같다:
v=xyz→vh=xyz1
동차좌표의 주요 특징
비례 관계
동차좌표 벡터는 비례 관계를 유지한다. 예를 들어, $(kx, ky, k)$와 $(x, y, 1)$는 동일한 점을 나타낸다. 즉, 다음과 같다:
kxkyk∼xy1
무한대 표현
동차좌표는 무한대를 표현하는 데도 사용된다. 점이 무한대에 있을 때, 마지막 원소가 0이 된다. 예를 들어, $(x, y, 0)$는 무한대에 있는 점을 나타낸다.
행렬 변환에서의 동차좌표
동차좌표를 사용하면 행렬 변환(matrix transformation)이 더 편리하다. 회전, 평행 이동, 스케일링 등의 변환을 행렬 곱셈으로 표현할 수 있다.
2차원 변환
2차원에서의 변환은 $3 \times 3$ 행렬로 표현된다. 예를 들어, 평행 이동(transformation) 행렬 $\mathbf{T}$는 다음과 같다:
T=100010txty1
이 행렬을 동차좌표 벡터에 곱셈하면 평행 이동이 이루어진다.
3차원 변환
3차원에서의 변환은 $4 \times 4$ 행렬로 표현된다. 예를 들어, 다음과 같은 평행 이동 행렬 $\mathbf{T}$가 있을 때:
T=100001000010txtytz1
이를 동차좌표 벡터에 곱셈하면 3차원 공간에서 평행 이동이 이루어진다.
변환 예시
2차원 변환 예시
평행 이동
동차좌표 벡터에 평행 이동 행렬을 적용해보자. 점 $(x, y)$를 평행 이동 시키는 식은 다음과 같다: