# 동차좌표와 벡터의 관계

### 벡터 공간과 동차좌표

벡터 공간(vector space)에서 동차좌표(homogeneous coordinates)는 2차원이나 3차원 공간에 새로운 차원을 추가하여 벡터들을 더 쉽게 표현하고 변환할 수 있게 해준다. 예를 들어, 2차원 공간에서 점 $(x, y)$는 동차좌표계를 사용하면 $(x, y, 1)$로 표현된다.

### 2차원에서의 동차좌표

2차원에서의 동차좌표는 $(x, y)$ 벡터를 $(x, y, 1)$로 변환한다. 이를 일반적으로 다음과 같이 나타낸다:

$$
\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)$로 변환한다. 이는 다음과 같다:

$$
\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)$는 동일한 점을 나타낸다. 즉, 다음과 같다:

$$
\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}$는 다음과 같다:

$$
\mathbf{T} = \begin{pmatrix} 1 & 0 & t\_x \ 0 & 1 & t\_y \ 0 & 0 & 1 \end{pmatrix}
$$

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

#### 3차원 변환

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

$$
\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)$를 평행 이동 시키는 식은 다음과 같다:

$$
\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$):

$$
\mathbf{R} = \begin{pmatrix} \cos\theta & -\sin\theta & 0 \ \sin\theta & \cos\theta & 0 \ 0 & 0 & 1 \end{pmatrix}
$$

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

$$
\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차원 공간에서의 평행 이동 행렬을 적용해보자:

$$
\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}
$$

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

$$
\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축을 기준으로 하는 회전 행렬은 다음과 같다:

$$
\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}
$$

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

$$
\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)$로 변화된다.
