벡터?
- 벡터(Vector)란 평면에서 시각적으로 의미 있는 물체를 생성하기 위해 평면을 구성하는 원소이다.
- 벡터는 크기와 방향을 가진 양을 나타내는 수학적 개념
데카르트 좌표계
- 데카르트 좌표계(Certesian coordination syste)는 직선의 수 집합을 수직으로 배치하여 평면을 표기하는 방식을 의미한다.
- 곱집합의 원어가 데카르트 곱(Certesian pruduct)임을 생각한다면 같은 의미임을 알 수 있다.
- 데카르트 좌표계는 위 그림과 같이 수평으로 배치한 첫 번째 실수 집합의 미지수를 x, 수직으로 배치한 두 번째 실수 집합의 미지수를 y로 표기함
- 원점을 기준으로 x축의 오른편, y축의 위편은 양의 영역을 나타낸다.
- 가로축 X와 세로축 Y를 통해 평면을 가르면 총 4개의 분면으로 나뉘는데 오른쪽 상단부터 반시계방향으로 순서를 붙인다.
- 1사분면, 2사분면, 3사분면, 4사분면
- 데카르트 좌표계의 한 원소는 곱집합과 동일하게 순서쌍으로 표현하며 좌표(Coordinate)라고 부른다.
- (x,y)
- 일반적으로 좌표는 수와 동일하게 위 그림과 같이 점 또는 원점으로부터의 화살표로 표현한다.
벡터 공간과 벡터
스칼라와 벡터
- 두 개 이상의 실수를 곱 집합으로 묶어 형성된 집합을 벡터 공간(Vector Space)이라고 한다.
- 벡터 공간의 원소를 벡터(Vector)라고 한다.
- 좌표값으로 사용하는 x와 y를 실수로 규정하기보단 체의 구조를 가지는 집합, 즉 체집합의 원소를 규정한다.
- 체의 구조를 가지는 수 집합의 원소를 스칼라(Scalar)라고 부른다
- 스칼라는 크기만을 가지고 방향이 없는 양을 의미
- 벡터와 반대되는 개념으로 단순히 크기만을 가진다.
- 벡터 공간을 표기할 때에는 대문자 V를 사용하고 이의 원소인 벡터는 소문자 v로 표기한다.
벡터 공간의 연산
- 벡터와 벡터의 덧셈(벡터의 합)
v1 + v2 = (x1, y1) + (x2, y2) = (x1 + x2, y1 + y2)
- 벡터와 벡터의 뺄셈(벡터의 차)
V1 - V2 = (x1, y1) - (x2, y2) = (x1 - x2, y1 - y2)
- 스칼라와 벡터의 곱셈(스칼라 곱)
a · v = a · (x, y) = (a · x, a · y)
벡터 공간의 공리
- 벡터의 합
- 결합법칙 : 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
- 벡터 공간의 공리는 모두 체의 공리를 기반으로 하기 때문에 해당 공리가 참임을 파악할 수 있다.
- 벡터의 합이 교환법칙을 만족하는 까닭은 두 스칼라의 덧셈이 교환법칙을 만족하기 때문
V1 + V2 = (x1, y1) + (x2, y2) = (x1 + x2, y1 + y2)
V2 + V1 = (x2, y2) + (x1, y1) = (x2 + x1, y2 + y1)
∴ V1 + V2 = V2 + V1
- 벡터 공간에서 합 연산을 적용하면 점의 움직임은 평면의 점을 각 축에 대해 독립적으로 평행 시동 시키는 작업이 된다.
- 스칼라 곱셈으로 생성된 벡터는 원점을 지나고 벡터와 평행한 직선상에 위치한다.
- 스칼라 곱셈의 결과는 붉은색으로 표현한, 원점을 지나는 직선상의 벡터를 만들어낸다.
벡터의 크기
- 수의 크기는 절댓값 기호(||)를 사용해 구할 수 있다.
- 피타고라스 정리를 사용해 거리를 측정한다.
c^2 = a^2 + b^2
c = sqrt((a*a) + (b*b))
- 벡터의 크기는 노름(Norm)이라는 용어로 부르기도 한다.
- 임의의 벡터 v를 크기가 1인 단위벡터(Unit Vector)로 다듬는 작업을 정규화한다(Normalize)고 부른다.
- 벡터의 크기가 1이 되면 방향은 유지한 채 크기를 표준화할 수 있다.
norm(V) = V / |V|
벡터의 결합과 생성
- 벡터 공간의 벡터의 합과 스칼라 곱셈 연산은 선형성이 있어 선형 연산이라고도 한다.
- 선형 연산을 사용해 n개의 스칼라와 n개의 벡터를 결합해 새로운 벡터 v 를 생성하는 수식을 선형 결합(Linear combination)이라고 한다.
a1·V1 + a2·V2 + a3·V3 + ... + an·Vn = V'
- 벡터를 곱하는 모든 스칼라 값이 0이면 선형 결합의 결과는 항상 영벡터(Zero Vector)가 된다.
a1·V1 + a2·V2 + a3·V3 + ... + an·Vn = 0
- 벡터에 곱하는 모든 스칼라 값이 0이면 선형 결합의 결과는 항상 영벡터가 된다.
- 그런데 0이 아닌 경우에도 영벡터는 나올수 있다. 그러한 경우를 선형 종속의 관계를 가진다고 표현한다.
2·(1, 1) + (-1)·(2, 2) = (0, 0)
- 반면에 영벡터가 나오기 위해 모든 a값이 0 이어야 한다면 사용된 벡터들은 서로 선형 독립의 관계를 가진다고 표현한다.
0·(1, 2) + 0·(2, 1) = (0, 0)
- 벡터 간의 선형적 관계는 벡터 공간을 다룰 때 중요하게 사용된다.
- 선형 독립의 관계를 가지는 벡터를 선형 결합하면 벡터 공간에 속한 모든 벡터를 생성할 수 있음
2차원 평면의 예제를 통해 백터 공간의 모든 벡터 생성하는지 살펴보기
두 벡터 U, V와 두 스칼라 a, b를 결합해 새로운 벡터 W를 생성하는 수식
W = a·U + b·V
두 벡터 U와 V가 선형 독립의 관계를 가진다면
위 선형 결합식으로 2차원 벡터 공간에 속한 모든 벡터를 생성할 수 있음
벡터 W = (5, 5)인 경우
(5, 5) = 5·(1, 0) + 5·(0, 1)
(5, 5) = 2·(2, 1) + 1·(1, 3)
- 위 예제에서 제시한 (2, 1), (1, 3)을 결합했을 때 (5, 5)가 아닌 다른 벡터로 생성할 수 있음
순서쌍 (Wx, Wy)로 구성된 임의의 벡터 W를 생성하는 수식
(Wx, Wy) = a·(2, 1) + b·(1, 3)
x값과 y값을 분리해 식을 전개
2a + b = Wx
a + 3b + Wy
두 식을 a와 b에 대한 연립 방정식으로 풀어보면
그 값은 벡터 W의 좌표 값에 따라 결정되며 언제나 해가 존재함
a = (3Wx - Wy) / 5
b = (2Wy - Wx) / 5
따라서 벡터 (2, 1)과 벡터 (1,3)을 결합해
평면에 속한 모든 벡터를 생성할 수 있음
벡터 W값이 영벡터가 되는 a와 b의 해는 모두 0인 경우뿐
a = (3·0 - 0) / 5
b = (2·0 - 0) / 5
- 위 식에서 벡터 (2, 1)과 (1, 3)은 서로 선형 독립의 관계를 가진다.
- 다른 두 벡터 (1, 2)와 (2, 4)를 결합할 경우
(5, 5) = a·(1, 2) + b·(2, 4)
a와 b를 연립방정식으로 보면
a + 2b = 5
2a + 4b = 5
이를 만족하는 a와 b는 구할 수 없다
2a + 4b = 10
2a + 4b = 5
- 두 벡터 (1, 2)와 (2, 4)는 평행하지만 (5, 5)와는 서로 평행하지 않다.
- 평행한 두 벡터를 결합한 결과는 두 개의 벡터 결합이 아닌 하나의 벡터 (1, 2)에 스칼라 곱을 적용한 결과에 불과함
(x, y) = a·(1, 2) + b·(2, 4)
= a·(1, 2) + 2b·(1, 2)
= (a + 2b)·(1, 2)
- 따라서 a와 b에 어떤 스칼라 값을 대입하더라도 선형 결합의 결과는 벡터 (1, 2)와 평핸한 벡터만 생성된다.
- (1, 2)와 (2, 5)의 관계를 선형 결합식으로 나타내면 아래와 같다.
2·(1, 2) + (-1)·(2, 4) = (0, 0)
- 0이 아닌 임의의 계수 a와 b를 사용해 영벡터를 만들 수 있으므로 두 벡터는 선형 종속의 관계를 가진다.
- 벡터 3개의 선형 결합
평행하지 않은 두 벡터를 결합하면 평면의 모든 벡터를 만들 수 있음
만약 3개의 벡터를 사용한다면? 선형 종속과 선형 독립의 관점에서 분석하기
두 벡터 (2, 1)과 (1, 3)은 선형 독립의 관계를 가짐
0·(2, 1) + 0·(1, 3) = (0, 0)
선형 독립인 두 벡터에 스칼라 a와 b를 곱하고
새로운 스칼라 c와 임의의 벡터 (x, y)를 추가해
세개의 벡터로 구성된 선형 결합식을 만들면
a·(2, 1) + b·(1, 3) + c·(x, y) = (0, 0)
- 세 벡터가 모두 선형 독립의 관계를 가지려면 위 식을 만족하는 모든 스칼라 a, b, c의 값은 0이 되어야 한다.
- 선형 독립인 두 벡터 (2, 1)과 (1, 3)을 결합해 평면의 모든 벡터를 생성할 수 있었음
- 따라서 두 벡터를 결합해 임의의 벡터 (x, y)에 -c를 곱한 -c·(x, y)를 생성할 수 있을 것
- 0이 아닌 스칼라 c를 사용해 영벡터를 만들 수 있으므로 선형 독립의 관계를 더 이상 만족하지 못함
-c·(x, y) + c·(x, y) = (0, 0)
- 선형 독립의 관계가 유지되려면 2개의 벡터만 사용되어야 함
기저
- 벡터 공간 내 모든 백터를 생성할 수 있는 선형 독립 관계를 가지는 벡터의 집합을 기저(Basis)라고 한다.
- 집합의 개념인 기저에 속한 원소를 기저벡터(Basis vector)라고 한다.
- 벡터 (2, 1)은 기저 B = {(2, 1), (1, 3)}에 속한 기저벡터다.
- 기저벡터를 다른 값으로 변경하면 기저벡터로부터 세워진 벡터 공간의 모든 원소가 바뀐다.
- 이는 선형 변환의 기본 원리가 된다.
- 기저의 개념은 차원(Dimension)이라는 새로운 용어를 정의하는데 사용된다.
- 평면으로 구성된 벡터 공간을 생성하기 위한 기저는 수많은 경우의 수가 존재함
- 단, 기저 집합의 원소 수는 언제나 2개뿐이다.
- 따라서 명확한 정의에 의해 평면에 대응하는 벡터 공간을 비로소 2차원으로 정의할 수 있게 되었음
- 위에서 설명한 벡터 공간은 두 개의 실수 집합을 결합해 생성한 벡터 공간
- 수 집합의 기호와 차원의 정보를 첨자로 결합해 R^2로 나타낼 수 있음
- 이를 2차원 실벡터 공간(Real vector space)라고 함
- 한 축만 사용하는 단위 벡터 (1,0) , (0,1) 로 구성된 집합을 표준기저(Standard basis)라고 하며 기저의 각 원소를 표준기저벡터(Standard basis vector)라고 한다.
표준 기저 벡터는 순서대로 e1, e2로 표기
e1 = (1, 0)
e2 = (0, 1)
- 벡터 공간의 차원에는 제약이 없기 때문에 R^3, R^4, ..., R^n으로 무한 확장이 가능함
- 3차원 벡터 공간의 표준기저는 늘어난 차원만큼 다음과 같이 구성된다.
e1 = (1, 0, 0)
e2 = (0, 1, 0)
e3 = (0, 0, 1)
게임에서의 벡터
- 게임 개발에서 벡터는 다양한 용도로 활용되며, 주로 위치, 방향, 속도 등을 나타내기 위해 사용한다.
- 위치 표현
- 게임 오브젝트의 위치를 나타내기 위해 벡터가 사용된다.
- 위치 벡터는 해당 오브젝트가 어디에 위치하는지 정확히 표현한다.
- 이동 및 속도
- 오브젝트의 이동을 처리할 때 (보통 속도 * 방향 벡터)를 사용한다.
- 카메라 및 시야 관리
- 플레이어의 시점을 나타내거나, 카메라의 위치 및 방향을 제어할 때 벡터가 사용된다.
- 또한, 카메라가 향하는 방향을 나타내는 시야 벡터로서도 사용된다.
출처
https://m.yes24.com/Goods/Detail/107025224
https://wecandev.tistory.com/204
https://velog.io/@apth1023/%EA%B2%8C%EC%9E%84-%EC%88%98%ED%95%99-%EB%B2%A1%ED%84%B0
https://walll4542developer.github.io/math/Cartesian-coordinate-system/
https://walll4542developer.github.io/math/Vector-Combination/
'게임수학' 카테고리의 다른 글
[게임수학] 벡터의 내적 (0) | 2024.04.22 |
---|---|
[게임수학] 어파인 공간(Affine space) (0) | 2024.04.22 |
[게임수학] 행렬 (0) | 2024.04.22 |
[게임수학] 삼각함수 (0) | 2024.04.22 |
[게임수학] 수 (0) | 2024.04.22 |