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차원 집합을 생각할 수 있다.
R2={(x,y)|x,y∈R}
이 집합에 있는 임의의 두 벡터를 더해도 위 집합에 포함되며, 한 벡터에 실수 스칼라 값을 곱해도 위 집합에 포함된다. 또한, 위에 적힌 8가지 공리도 만족하므로 이 집합은 벡터 공간이다.
그럼 벡터 공간 V에서 임의의 집합 S를 선택했을때, 이 집합 S도 벡터 공간이라고 볼 수 있을까?
확실한 것은, 벡터 공간 안에 있는 집합이므로 위의 8가지 공리는 자동으로 성립한다는 것이다. 그러므로 우리는 벡터의 덧셈과 스칼라 곱에 대해 닫혀있는지만 확인하면 된다.
예를 들어, 벡터공간 R3에 있는 임의의 집합 S를 다음과 같이 정의해보자.
S={(x,y,0)|x,y∈R}
이 집합이 덧셈과 스칼라 곱에 대해 닫혀있다는 것을 다음과 같이 간단하게 증명할 수 있다.
(x0,y0,0)+(x1,y1,0)=(x0+x1,y0+y1,0)∈S
a(x0,y0,0)=(ax0,ay0,0)∈S
이렇게 벡터 공간안에서 덧셈과 스칼라 곱에 대해 닫혀있는 집합을 벡터 부분 공간(Vetor Subspace)이라고 한다.
다음은 부분 공간이 아닌 집합의 예이다.
S={(x,y,1)|x,y∈R}
(x0,y0,1)+(x1,y1,1)=(x0+x1,y0+y1,2)∉S
0∗(x0,y0,1)=(0,0,0)∉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 |