Game Programming/게임 수학

[게임수학] 벡터

Doanie 2022. 9. 27. 19:45

[게임수학] 벡터


벡터 (Vector)

공간을 만들려면 직선을 벗어나 넓은 평면으로 무대를 확장해야한다. 평면에서 시각적으로 의미있는 물체를 생성하기 위해서는 평면을 구성하는 원소가 필요하며 이 원소를 벡터라고한다.

데카르트 좌표계

데카르트 좌표계의 한 원소는 동일하게 순서쌍으로 표현하며 (x, y), 이것을 좌표라고 부른다. 

스칼라와 벡터

평면의 좌표 (x, y)는 두 실수 x와 y를 결합해 만들어지기 때문에 좌표의 연산은 실수가 지니는 연산의 성질을 바탕으로 설계돼야 한다. 두개 이상의 실수를 곱집합으로 묶어 형성된 집합을 공리적 집합론의 관점에서 규정한 것을 벡터 공간(Vector Space)라 하며, 벡터 공간의 원소를 벡터(Vector)라고 한다.

벡터

공리적 집합론의 관점에서는 특정한 수의 집합을 지칭하지 않고 연산이 같는 성질만 다루기 때문에 좌푯값으로 사용하는 x와 y를 실수로 규정하기 보다는 체의 구조를 지니는 집합으로 규정하고 이 집합의 원소를 스칼라(Scalar)라고 한다.

 

벡터 공간의 연산

분류 공리 수식
벡터의 합 벡터의 합의 결합 법칙 u + (v + w) = (u + v) + w
벡터의 함의 교환 법칙 u + v = v + u
벡터의 합의 항등원 v + 0 = v
벡터의 합의 역원 v + (-v) = 0
스칼라 곱셈 스칼라 곱셈의 호환성 a(bv) = (ab)v
스칼라 곱셉의 항등원 1 * v = v
스칼라 곱셈 벡터의 합에 대한 분배 법칙 a(u + v) = au + av
스칼라 덧셈에 대한 분배 법칙 (a + b)v = av + bv

벡터의 합의 시각화

A(a1, a2), B(b1, b2)일 때, A + B = (a1, a2) + (b1, b2) = (a1 + b1, a2 + b2)

C(1, 3)일 때, 3 * C = 3 * (1, 3) = (3 * 1, 3 * 3) = (3, 9)

벡터의 크기

기존의 수직선에서 수의 크기는 원점으로부터의 거리를 의미하며 절대값을 이용하여 구할 수 있었는데 벡터의 크기 또한 원점으로부터의 최단거리를 의미한다. 그리고 피타고라스의 정리를 이용하여 거리를 측정한다.

‖v‖ =  sqrt(x2 + y2),

벡터의 크기는 노름이라는 용어로 부르기도 하며 크기가 1인 벡터를 단위 벡터라고 한다.

 

단위벡터 = v / ‖v‖ , 벡터 v가 크기가 1인 단위 벡터로 다듬는 작업을 정규화(Normalize)라고한다.

 

표준 기저 벡터

벡터 공간 내 모든 벡터를 생성할 수 있는 선형 독립 관계를 가지는 벡터의 집합을 기저라고하며 집합의 개념인 기저에 속한 원소를 기저 벡터라고 한다. 또한 한 축만 사용하는 단위 벡터 (1, 0), (0, 1)로 구성된 집합을 특별히 표준 기저라고 하며

기저의 각 원소를 표준기저벡터라고 하며 e​1, e2로 표기한다.

e1 = (1, 0), e2 = (0, 1)

지금까지의 벡터들은 2차원 기준이며 차원이 늘어날 수록 원소를 추가하면 된다. 

ex) 3차원 : e1 = (1, 0, 0), e2 = (0, 1, 0), e3 = (0, 0, 1)


벡터는 게임 공간 즉, 가상 공간을 구성하는 요소이자 원소이다. 벡터의 기본적인 개념과 원리를 파악했으며 이를 기반으로 2차원의 공간에서의 이동 또한 알 수 있었다.