동차좌표와 벡터의 관계

벡터 공간과 동차좌표

벡터 공간(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} = \begin{pmatrix} x \\ y \end{pmatrix} \rightarrow \mathbf{v_h} = \begin{pmatrix} x \\ y \\ 1 \end{pmatrix}

여기서 $\mathbf{v_h}$는 동차 좌표 벡터(homogeneous vector)를 의미한다.

3차원에서의 동차좌표

3차원에서는 각 벡터에 한 차원을 추가하여 $(x, y, z)$ 벡터를 $(x, y, z, 1)$로 변환한다. 이는 다음과 같다:

v=(xyz)vh=(xyz1)\mathbf{v} = \begin{pmatrix} x \\ y \\ z \end{pmatrix} \rightarrow \mathbf{v_h} = \begin{pmatrix} x \\ y \\ z \\ 1 \end{pmatrix}

동차좌표의 주요 특징

비례 관계

동차좌표 벡터는 비례 관계를 유지한다. 예를 들어, $(kx, ky, k)$와 $(x, y, 1)$는 동일한 점을 나타낸다. 즉, 다음과 같다:

(kxkyk)(xy1)\begin{pmatrix} kx \\ ky \\ k \end{pmatrix} \sim \begin{pmatrix} x \\ y \\ 1 \end{pmatrix}

무한대 표현

동차좌표는 무한대를 표현하는 데도 사용된다. 점이 무한대에 있을 때, 마지막 원소가 0이 된다. 예를 들어, $(x, y, 0)$는 무한대에 있는 점을 나타낸다.

행렬 변환에서의 동차좌표

동차좌표를 사용하면 행렬 변환(matrix transformation)이 더 편리하다. 회전, 평행 이동, 스케일링 등의 변환을 행렬 곱셈으로 표현할 수 있다.

2차원 변환

2차원에서의 변환은 $3 \times 3$ 행렬로 표현된다. 예를 들어, 평행 이동(transformation) 행렬 $\mathbf{T}$는 다음과 같다:

T=(10tx01ty001)\mathbf{T} = \begin{pmatrix} 1 & 0 & t_x \\ 0 & 1 & t_y \\ 0 & 0 & 1 \end{pmatrix}

이 행렬을 동차좌표 벡터에 곱셈하면 평행 이동이 이루어진다.

3차원 변환

3차원에서의 변환은 $4 \times 4$ 행렬로 표현된다. 예를 들어, 다음과 같은 평행 이동 행렬 $\mathbf{T}$가 있을 때:

T=(100tx010ty001tz0001)\mathbf{T} = \begin{pmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{pmatrix}

이를 동차좌표 벡터에 곱셈하면 3차원 공간에서 평행 이동이 이루어진다.

변환 예시

2차원 변환 예시

평행 이동

동차좌표 벡터에 평행 이동 행렬을 적용해보자. 점 $(x, y)$를 평행 이동 시키는 식은 다음과 같다:

(10tx01ty001)(xy1)=(x+txy+ty1)\begin{pmatrix} 1 & 0 & t_x \\ 0 & 1 & t_y \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} x \\ y \\ 1 \end{pmatrix} = \begin{pmatrix} x + t_x \\ y + t_y \\ 1 \end{pmatrix}

즉, 점 $(x, y)$는 $(x + t_x, y + t_y)$로 이동된다.

회전

회전 행렬은 다음과 같다 (회전 각도 $\theta$):

R=(cosθsinθ0sinθcosθ0001)\mathbf{R} = \begin{pmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{pmatrix}

이를 적용하면 점 $(x, y)$는 회전된 점 $(x', y')$로 변환된다:

(cosθsinθ0sinθcosθ0001)(xy1)=(xcosθysinθxsinθ+ycosθ1)\begin{pmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} x \\ y \\ 1 \end{pmatrix} = \begin{pmatrix} x\cos\theta - y\sin\theta \\ x\sin\theta + y\cos\theta \\ 1 \end{pmatrix}

즉, 점 $(x, y)$는 회전 변환 후 $(x\cos\theta - y\sin\theta, x\sin\theta + y\cos\theta)$로 바뀐다.

3차원 변환 예시

평행 이동

3차원 공간에서의 평행 이동 행렬을 적용해보자:

T=(100tx010ty001tz0001)\mathbf{T} = \begin{pmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{pmatrix}

이를 동차좌표 벡터에 곱하면:

(100tx010ty001tz0001)(xyz1)=(x+txy+tyz+tz1)\begin{pmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} x \\ y \\ z \\ 1 \end{pmatrix} = \begin{pmatrix} x + t_x \\ y + t_y \\ z + t_z \\ 1 \end{pmatrix}

따라서 점 $(x, y, z)$는 $(x + tx, y + ty, z + tz)$로 변경된다.

회전

3차원 공간에서의 회전 행렬도 세 종류가 있다: x축, y축, z축을 기준으로 한 회전. 예를 들어 z축을 기준으로 하는 회전 행렬은 다음과 같다:

Rz=(cosθsinθ00sinθcosθ0000100001)\mathbf{R_z} = \begin{pmatrix} \cos\theta & -\sin\theta & 0 & 0 \\ \sin\theta & \cos\theta & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}

이를 동차좌표 벡터에 적용하면:

(cosθsinθ00sinθcosθ0000100001)(xyz1)=(xcosθysinθxsinθ+ycosθz1)\begin{pmatrix} \cos\theta & -\sin\theta & 0 & 0 \\ \sin\theta & \cos\theta & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} x \\ y \\ z \\ 1 \end{pmatrix} = \begin{pmatrix} x\cos\theta - y\sin\theta \\ x\sin\theta + y\cos\theta \\ z \\ 1 \end{pmatrix}

이와 같이 점 $(x, y, z)$는 회전 변환 후 $(x\cos\theta - y\sin\theta, x\sin\theta + y\cos\theta, z)$로 변화된다.

Last updated