벡터(Vector) 上
벡터(Vector)는 크기와 방향을 모두 가지고 있다. 이 크기와 방향을 모두 가진 수량을 벡터 값 수량이라고 부른다.
벡터 값 수량의 예로는 힘(force; 힘은 특정 방향과 세기, 즉 크기로 가해진다.) 변위(displacement: 한 입자의 최종적 이동 방향 및 거리), 속도(빠르기와 방향)가 있다.
따라서 벡터는 힘이나 변위, 속도를 나타내는 데 쓰인다.
또한 벡터는 게임에서 플레이어가 바라보는 방향이나 한 다각형이 향한 방향, 광선이 이동하는 방향, 한 표면에서 광선이 반사되는 방향 등 순수한 방향만 나타내는 경우에도 벡터를 사용한다.
벡터를 기하학적으로 나타내 본다면 벡터는 시각적으로 방향이 있는 선분으로 표시한다.
선분의 길이는 벡터의 크기를, 화살표가 향하는 방향은 벡터의 방향을 의미한다.
벡터가 그려져 있는 위치는 중요하지 않다.
왜?
위치를 바꿔도 벡터의 크기나 방향은 변하지 않기 때문이다. 벡터가 가진 두 가지 속성인 크기와 방향은 위치와 상관없다.
따라서 두 벡터는 오직 길이가 같고 같은 방향을 가리킬 때에만 같다고 한다.
우리는 이렇게 알 수 있지만 컴퓨터는 벡터들을 기하학적으로 다루지 못한다. 따라서 벡터들을 수치적으로 지정하는 방법이 필요하다.
이를 위해 공간에 하나의 3차원 좌표계를 도입하고 모든 벡터를 그 꼬리가 원점과 일치하도록 이동시켜준다. 그러면 하나의 벡터를 그 머리(화살표의 끝)의 좌표로 정할 수 있으며 벡터를 v=(x, y, z)로 표기할 수 있다.
v의 꼬리를 좌표계의 원점으로 이동시켰으며 벡터의 꼬리가 원점과 일치하는 경우 그 벡터가 "표준 위치에 있다"고 말한다.
◎기본적인 벡터 연산
u = (u1, u2, u3)이고 v = (v1, v2, v3) 라고 가정했을 때
◑ 벡터의 상등
두 벡터는 오직 해당 좌표성분들이 모두 같을 때만 같다.
즉 u1=v1, u2=v2, u3=v3일 경우에만 u = v이다.
◑ 벡터의 덧셈
벡터 덧셈은 성분별로 이루어지며
w = u+v일 때, w = (u1+v1, u2+v2, u3+v3)이다.
u와 v를 더하기 위해서는 v를 평행이동 해 u의 꼬리에 v의 머리를 일치시켜 준다.
그리고 그 결과값인 w는 원점에서부터 v의 머리까지 향하는 벡터가 된다.
◑ 스칼라 곱셈
벡터에는 상수, 실수를 곱할 수 있으며 그 결괏값도 벡터이다.
보통 벡터에 곱하는 실수 값을 스칼라라고 부르는데 스칼라 값을 k라고 할 때 ku = (ku1, ku2, ku3)이다.
이를 스칼라 곱셈이라고 부른다.
◑ 벡터의 뺄셈
벡터의 뺄셈은 벡터의 덧셈과 스칼라 곱셈을 통해서 정의 된다.
w = u - v일 경우 정확하게 말하면 u에 -1의 스칼라 값을 곱한 v를 더하는 것이다.
w = u + (-1 * v)
뺄셈은 v의 머리에서부터 u의 머리까지의 벡터를 구하는 것이다.
이 벡터의 뺄셈을 통해서 방향을 알 수 있다.
참고 출처
Direct11을 이용한 3D게임프로그래밍 (저; 프랭크 D. 루나, 역; 류광, 출판사; 한빛미디어)
'GameProgramming > 게임수학 & 물리' 카테고리의 다른 글
[게임수학] 행렬 上 (연산, 단위행렬, 전치행렬) (0) | 2020.02.12 |
---|---|
[게임 수학] 포물선과 원 충돌체크 (0) | 2020.01.21 |
[게임 수학] 두 점 사이의 거리 구하기 (0) | 2020.01.21 |
[게임 수학] 삼각함수(sin, cos, tan) (0) | 2020.01.20 |
[게임수학] 벡터(Vector) 下 (0) | 2020.01.10 |