3D 그래픽에서는 객체를 이동, 회전, 크기 조절하는 등의 변형(transform)이 자주 필요하여, 이를 행렬을 통해 표현할 수 있다.


3.1.1 정의

함수 $\tau(\mathbf{v}) = \tau(x, y, z) = (x', y', z')$가 다음 두 조건을 만족하면 선형 변환(linear transformation)이라 한다.

  1. $\tau(\mathbf{u} + \mathbf{v}) = \tau(\mathbf{u}) + \tau(\mathbf{v})$
  2. $\tau(k\mathbf{u}) = k \tau(\mathbf{u})$

여기서 $\mathbf{u} = (u_{x}, u_{y}, u_{z})$와 $\mathbf{v} = (v_{x}, v_{y}, v_{z})$는 임의의 3차원 벡터이고 $k$는 스칼라이다.

<aside> 💡

예 3.1

함수 $\tau(\mathbf{v}) = \tau(x, y, z) = (x^2, y^2, z^2)$이 있다고 하자. 예를 들면 $\tau(1, 2, 3) = (1, 4, 9)$이다. 이 함수는 $k = 2$와 $\mathbf{u} = (1, 2, 3)$에 대해 선형 변환이 아니다. 그런 경우

$$ \tau(k\mathbf{u}) = tau(2, 4, 6) = (4, 16, 36) $$

이지만

$$ k\tau(\mathbf{u}) = 2(1, 4, 9) = (2, 8, 18) $$

이며, 이는 $\tau(k\mathbf{u}) = k \tau(\mathbf{u})$ 조건을 위반한다.

</aside>


3.1.2 행렬 표현

임의의 벡터 $\mathbf{u} = (x, y, z)$는 표준 기저 벡터(standard basis vector)를 이용해 다음과 같이 표현 가능

$$ \mathbf{u} = (x, y, z) = x\mathbf{i} + y\mathbf{j} + z\mathbf{k} = x(1,0,0) + y(0,1,0) + z(0,0,1) $$

선형성에 따라

$$ \tau(\mathbf{u}) = \tau(x\mathbf{i} + y\mathbf{j} + z\mathbf{k}) = x\tau(\mathbf{i}) + y\tau(\mathbf{j}) + z\tau(\mathbf{k}) $$

이를 행렬 곱셈으로 표현하면