1. 스칼라(Scalar)
- 정의: 크기만 있고 방향은 없는 수
- 예시: 2D 게임에서 시간(time), 속도의 크기(speed), 캐릭터의 크기(scale) 등을 나타낼 때 주로 사용한다.
- 특징: 실수로 표현되며, 덧셈, 뺄셈, 곱셈, 나눗셈 등의 연산을 수행할 수 있다.
예를 들어, 캐릭터의 애니메이션 프레임 시간을 0.016초(약 60fps)로 설정한다고 하면, 이 0.016은 방향이 없는 순수한 크기 정보이므로 스칼라에 해당한다.
2. 벡터(Vector)
- 정의: 크기와 방향을 모두 갖춘 수학적 객체
- 표현: 2D에서 벡터 v는 일반적으로 (x,y)로 표현되며, 각각 실수(스칼라)인 x, y 좌표를 가진다.
- 예시: 캐릭터가 화면 상에서 (3, 4)만큼 이동한다고 할 때, 이는 x축 방향으로 3만큼, y축 방향으로 4만큼 움직인 벡터를 의미한다.
2.1 벡터의 길이(원점으로부터의 최단 거리)
∣v∣=x2+y2
- 예: v=(3,4)라면 ∣v∣=32+42=5
- 게임에서 캐릭터와 오브젝트 사이의 거리, 투사체의 이동 거리 등을 계산할 때 자주 사용한다.
3. 벡터 공간의 성질
2D 벡터는 일반적인 벡터 공간의 성질을 그대로 따른다. 아래의 성질들은 2D 게임에서 캐릭터 이동, 물리 엔진 구현 등에 활용된다.
-
벡터 덧셈의 결합법칙
u+(v+w)=(u+v)+w
- 캐릭터가 u,v,w 순으로 이동하더라도, 최종 위치는 순서를 어떻게 바꾸어 이동해도 동일하다.
-
벡터 덧셈의 교환법칙
u+v=v+u
- 두 벡터를 더하는 순서는 결과 벡터에 영향을 주지 않는다.
- 예: (3, 4) + (1, 2)나 (1, 2) + (3, 4)는 같은 결과 (4, 6).
-
덧셈 항등원(영벡터 0 )
v+0=v
- (0,0)을 더하면 원래 벡터가 변하지 않는다.
-
덧셈 역원
v+(−v)=0
- 예: (5, 7)에 (-5, -7)을 더하면 (0, 0)이 되어 원래 위치로 돌아온다.
-
스칼라 곱셈 연산의 호환성
1⋅v=v
-
분배법칙
a(u+v)=au+av
- 게임에서 캐릭터의 이동 속도(scalar)를 벡터 두 개(방향)로 분할해서 계산하는 경우에 활용된다.