선형 대수학의 기초

선형 대수학(Linear Algebra)은 벡터(vector)와 행렬(matrix)을 다루는 학문으로, 동차좌표계(Homogeneous Coordinate System)를 이해하는 데 매우 중요한 역할을 한다. 동차좌표계를 사용하게 되면 유사한 점의 표현 방식이나 변환을 더 쉽게 처리할 수 있다. 이를 이해하기 위해서는 먼저 선형 대수학의 기본 개념들을 이해할 필요가 있다.

벡터와 벡터 공간

벡터는 크기와 방향을 가진 객체이다. 일반적으로 벡터는 \mathbf{v}로 표현되며, 다음과 같은 형태를 가질 수 있다.

\mathbf{v} = \begin{bmatrix} v_1 \\ v_2 \\ \vdots \\ v_n \end{bmatrix}

벡터 공간은 이러한 벡터들이 정의된 공간이다. 벡터 공간은 두 주요 연산, 벡터 덧셈과 스칼라 곱셈에 대해 닫혀 있어야 한다.

행렬과 행렬 연산

행렬은 수를 직사각형 배열로 정렬한 것이라고 할 수 있다. 행렬은 벡터 공간의 변환 및 여러 선형 대수학 연산을 수행할 때 중요한 역할을 한다.

\mathbf{A} = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix}

선형 변환

선형 변환은 벡터 공간을 다른 벡터 공간에 매핑하는 함수이다. 예를 들어, 행렬 \mathbf{A}와 벡터 \mathbf{x}를 통해 선형 변환을 정의할 수 있다.

\mathbf{y} = \mathbf{A} \mathbf{x}

이는 벡터 \mathbf{x}에 행렬 \mathbf{A}를 곱하여 새로운 벡터 \mathbf{y}를 얻는 것을 의미한다.

3차원 동차좌표와 3D 변환

3D 변환에서는 동차 좌표계를 4차원으로 확장한다. 예를 들어, 3D 좌표 (x, y, z)를 동차 좌표계로 확장하면 (x, y, z, 1)이 된다. 이렇게 하면 3D 변환, 특히 3D 평행 이동, 회전, 스케일링 등을 일관되게 처리할 수 있다.

평행이동

3D 평행이동은 다음과 같은 행렬로 표현할 수 있다:

\mathbf{T} = \begin{bmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{bmatrix}

따라서, 좌표 (x, y, z)(x + t_x, y + t_y, z + t_z)로 평행 이동하는 것은 다음과 같은 행렬 곱셈으로 표현할 수 있다.

\mathbf{P}' = \mathbf{T} \mathbf{P} = \begin{bmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ z \\ 1 \end{bmatrix} = \begin{bmatrix} x + t_x \\ y + t_y \\ z + t_z \\ 1 \end{bmatrix}

회전

3D 회전은 X축, Y축, Z축에 대한 회전을 포함한다. 각각의 회전 행렬은 다음과 같다.

\mathbf{R}_x(\theta) = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & \cos\theta & -\sin\theta & 0 \\ 0 & \sin\theta & \cos\theta & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}
\mathbf{R}_y(\theta) = \begin{bmatrix} \cos\theta & 0 & \sin\theta & 0 \\ 0 & 1 & 0 & 0 \\ -\sin\theta & 0 & \cos\theta & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}
\mathbf{R}_z(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta & 0 & 0 \\ \sin\theta & \cos\theta & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}

스케일링

스케일링 변환은 다음과 같은 행렬로 표현된다. 이 행렬은 각 축에 대해 독립적으로 크기를 변경할 수 있다.

\mathbf{S} = \begin{bmatrix} s_x & 0 & 0 & 0 \\ 0 & s_y & 0 & 0 \\ 0 & 0 & s_z & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}

동차 좌표계의 장점

동차 좌표계의 가장 큰 장점은 다양한 기하 변환을 일관되게 처리할 수 있다는 점이다. 행렬 연산만으로 변환을 수행할 수 있기 때문에, 연산이 단순하고 빠르다. 또한, 여러 변환을 하나의 변환으로 결합하여 표현할 수 있어 효율적이다.

결국, 이러한 특성들 때문에 동차 좌표계는 컴퓨터 그래픽스, 로보틱스, CAD(Computer-Aided Design) 등 다양한 분야에서 널리 사용된다.