Game Development, 게임개발/게임 수학,물리

벡터(Vector) - 1 [게임수학]

게임이 더 좋아 2021. 3. 9. 20:47
반응형
728x170

이전에 선형대수에서 벡터공간을 알아보았고 선형변환에 대해 알아보았다.

우리는 이미 벡터란 개념을 배웠지만 여기서 살짝 찍먹 한 번 더... 하고 넘어간 후

다시 깊게 들어가보자

 


 

요즘 과정에서 기하와 벡터가 빠졌다고 들었지만...

어차피 배운 사람도 벡터 가물가물하다. 

우리가 배운 벡터들은 유클리디안 벡터, Euclidean Vector이다. 여기에 대해 살짝 찍먹 해보자

 


 

유클리드는 정말 있어보이는 이름이고 많이 들어봤을 것이다.

솔직히 검색해서 이걸 찾을 정도의 사람이면 유클리드 기하학이라는 말을 살다가 한 번쯤은 들어봤을 것이다.

 

우리는 유클리드 공간이란 말을 배우게 되는데

유클리드 공간이란 말은 직접적으로 배우진 않았겠지만 유클리드 공간의 이해는 우리는 좌표계로서 이해하였다. 

공간이라면 x,y,z 축으로 이루어진 좌표계를 바탕으로 우리는 중,고등학교 때 배웠다.

**이러한 좌표계는 데카르트의 카르테지안 좌표계(Cartesian coordinate system,직교좌표계)을 사용해서 배운다.

 

유클리드 공간이란 머나먼 개념은 이제 좌표계를 통해 우리에게 친숙한 공간이 되었고 이를 기반으로 벡터를 이해할 것이다.

 


우리는 3차원 공간에서 벡터를 배울 것이다.

 

이 공간에서 벡터는 크기와 방향을 가진 것으로 화살표가 있는 선분이라고 생각할 수 있다.

또한 벡터에는 위치의 개념이 없다.

즉, 우리가 보이는 위치는 달라다 크기와 방향이 같다면 그것은 같은 벡터라고 볼 수 있다.

 

**벡터의 크기가 1인 벡터를 단위 벡터라고 한다. (unit vector) 

++우리는 흔히 정규화(normalization)를 시켜 크기를 1로 만들기도 한다.

 

**벡터의 크기가 0이면 영 벡터( zero vector, null vector)라고 부른다.

 

이전의 벡터 공간에 대해서 배웠듯이 

이 공간에서의 벡터들은 두 연산, 덧셈, 스칼라 곱이 존재하고 연산 결과 역시 같은 벡터 공간에 존재하는 벡터가 된다.

 

** 여기서 말하는 스칼라, 즉, 벡터 공간을 정의하기 위한 체는 실수체이다.

 

 

 

이 연산을 수식으로 어떻게 표현할 수 있을까?

 

즉, 3차원 공간의 벡터를 어떻게 수식으로 표현할 수 있을까?

 

 

선형 조합(Linear combination)과 기저(basis)에 대한 이해가 있다면 위와 같이 표현 가능하다.

다시 말해서, 주어진 벡터들의 집합 S = {v1,v2..vn} 이라고 할 때 선형조합은 위와 같이 나타난다.

 

s값들은 임의의 스칼라 값이 된다.

 

즉, S에서 파생된 무수히 많은 조합들을 다시 하나의 집합으로 묶자. 만약 이 집합이 벡터 공간을 이룬다면 우리는 S가 벡터 공간을 생성(span) 한다고 말할 수 있다.

이 때 S가 어떤 특정 조건을 만족하면  S가 벡터공간을 만드는 기저(basis)가 된다고 말할 수 있다.

 

이 특정 조건은

바로 S의 원소들이 선형 독립되어 있다는 것이다.(Linear independent)

**선형 독립이란 다른 어떠한 나머지 원소로도 다른 원소를 만들 수 없다는 것이다. 

 

쉽게 말하면 (1,0,0)을 표현할 때, y좌표의 값과 z 좌표의 값을 아무리 연산을 해도 X 좌표의 1 값 하나를 못만든다.

이런 것이 독립이라고 보면 된다.

 

즉, 어떠한 공간을 형성하는 기저(basis)가 공간을 만든다고 볼 수 있다.

-> 이러한 벡터를 기저 벡터(basis vector)라고 한다.

 

 

위의 2차원 공간을 만들 수 있는 기저 벡터는 무수히 많다. 

서로 평행하지 않는 두 벡터를 원소로 가진 모든 공간은 2차원 공간을 생성할 수 있는 것이다.

 

이를 3차원에 적용해도 마찬가지다.

 


 

나는 차원이라는 뜻을 정보의 표현이라고 본다.

3차원이면 3가지 정보를 보여준다고 볼 수 있다. 그렇다면 우리는 어디에 살고 있을까?

우리는 4차원에 살고 있다고 생각한다. (3차원 + 시간)

우리는 시간이라는 정보가 하나 더 있다. 이는 항상 엔트로피가 증가하는 방향으로 진행된다.

(차원이 나와서 그냥 생각해봤다)

 


 

다시 돌아와서

우리는 벡터라는 것을, 추상적으로만, 생각으로만 존재하던 것을 시각화할 수 있다.

위의 식과 같이 표현할 수 있다는 것이다.

 

덧셈, 스칼라곱도 마찬가지다. 

 

다음에는 내적과 외적을 살짝 찍먹해보자.

 

 


 

더 자세히 알고 싶다면 "수학으로 시작하는 3D 게임 개발" 읽어도 된다. 나도 읽었다.

728x90
반응형
그리드형