2022. 7. 24. 14:22ㆍMathematics for CG
게임에서 캐릭터의 방향 및 변위를 표현하기 위해 벡터(Vector)라는 개념을 사용한다.
벡터는 벡터 공간(Vector Space)이라는 추상적인 공간에 존재하는데, 이 공간에 있는 벡터들은 다음과 같은 공리들을 만족한다.
- 덧셈의 교환 법칙 : $x + y = y + x$
- 덧셈의 결합 법칙 : $x + (y + z) = (x + y) + z$
- 덧셈의 항등원 : $x + 0 = x$
- 덧셈의 역원 : $x + (-x) = 0$
- 스칼라 분배 법칙 : $a(x + y) = ax + ay$
- 벡터 분배 법칙 : $(a + b)x = ax + by$
- 곱셈의 항등원 $1 * x = x$
- $(ab)x = a(bx)$
우리가 당연히 사용해왔던 벡터의 덧셈, 스칼라 곱과 같은 연산들은 사실 벡터들이 위와 같은 성질들이 정의된 벡터 공간 안에 존재하기 때문에 가능했던 것이다.
벡터 공간은 위 8가지 공리들 말고도 다음과 같은 중요한 성질이 있다.
- 벡터 공간 V에 있는 임의의 벡터 u, v에 대하여, u + v가 V에 속한다.
(즉, 덧셈에 닫혀있다.) - 실수체 R에 있는 스칼라 a와 벡터 공간 V에 있는 벡터 u에 대하여, av가 V에 속한다.
(즉, 곱셈에 닫혀있다.)
예를 들어, 우리가 흔히 사용하는 각 축이 실수로 표현된 2차원 집합을 생각할 수 있다.
$$ \mathbb{R}^2 = \{(x,y) \;|\; x,y \in \mathbb{R}\} $$
이 집합에 있는 임의의 두 벡터를 더해도 위 집합에 포함되며, 한 벡터에 실수 스칼라 값을 곱해도 위 집합에 포함된다. 또한, 위에 적힌 8가지 공리도 만족하므로 이 집합은 벡터 공간이다.
그럼 벡터 공간 $V$에서 임의의 집합 $S$를 선택했을때, 이 집합 $S$도 벡터 공간이라고 볼 수 있을까?
확실한 것은, 벡터 공간 안에 있는 집합이므로 위의 8가지 공리는 자동으로 성립한다는 것이다. 그러므로 우리는 벡터의 덧셈과 스칼라 곱에 대해 닫혀있는지만 확인하면 된다.
예를 들어, 벡터공간 $ \mathbb{R}^3 $에 있는 임의의 집합 $S$를 다음과 같이 정의해보자.
$$ S = \{(x,y, 0) \;|\; x,y \in \mathbb{R}\} $$
이 집합이 덧셈과 스칼라 곱에 대해 닫혀있다는 것을 다음과 같이 간단하게 증명할 수 있다.
$$ (x_0,\; y_0,\; 0) + (x_1,\; y_1,\; 0) = (x_0 + x_1,\; y_0 + y_1,\; 0) \in S $$
$$ a(x_0, y_0, 0) = (ax_0, ay_0, 0) \in S $$
이렇게 벡터 공간안에서 덧셈과 스칼라 곱에 대해 닫혀있는 집합을 벡터 부분 공간(Vetor Subspace)이라고 한다.
다음은 부분 공간이 아닌 집합의 예이다.
$$ S = \{(x,y, 1) \;|\; x,y \in \mathbb{R}\} $$
$$ (x_0,\; y_0,\; 1) + (x_1,\; y_1,\; 1) = (x_0 + x_1,\; y_0 + y_1,\; 2) \notin S $$
$$ 0 * (x_0, y_0, 1) = (0, 0, 0) \notin S $$
바로 위 예제를 통해 알 수 있듯이, 부분 공간이 되기 위해서는 집합 S 안에 있는 어떤 벡터에 0을 곱해도 집합 S에 포함이 되어야하므로 부분 공간은 반드시 0 벡터를 포함한다.
벡터 공간 및 부분 공간이라는 추상적인 개념이 정의된 이유는, 벡터들이 항상 만족하는 연산들을 일반화하기 위함이다. 우리가 사용하는 벡터가 몇차원 벡터든 간에, 이러한 공간안에만 있으면 교환 법칙, 결합 법칙, 덧셈, 스칼라 곱 등 이러한 연산들이 항상 정의가 되는 것이다.
다음 글에서는 선형 결합(linear combination)과 선형 독립(linear independence)에 대해 알아보도록 하겠다.
'Mathematics for CG' 카테고리의 다른 글
6. 아핀 변환 (Affine Transformation) (0) | 2022.08.04 |
---|---|
5. 아핀 결합(Affine Combination) (0) | 2022.08.02 |
4. 점(Point)과 아핀 공간(Affine Space) (0) | 2022.08.02 |
3. 선형 변환(Linear Transformation), 기저 변환(Change of Basis) (1) | 2022.07.26 |
2. 선형 결합(Linear Combination)과 선형 독립(Linear Independence) (0) | 2022.07.24 |