Vector란?

Vector는 크기방향을 갖는 데이터 입니다.

 

2차원 좌표 위에 임의의 두 점을 찍어 길이 크기가 5인 직선이 있습니다.


"5" 라는 스칼라 값으로는 방향을 알 수 없습니다. 

이 직선을 방향과 크기의 정보를 둘 다 갖는 벡터로 표현 해보겠습니다.  

 

 

 

각 좌표에 대해 (목적지 - 시작점) 계산하여 벡터를 표현했습니다. 

 

하지만 벡터 만으로 위치 값을 알 수 없습니다. 즉 벡터만을 보게 되면 이런 직선이라고 할 수 있죠.

 

벡터의 연산 특징 (덧셈, 뺄샘)

사칙 연상을 하기 위해 2개의 벡터를 가 있다고 가정하겠습니다.

앞서 말했듯이 위치는 알 수 없습니다. 오로지 방향과 크기(길이)를 갖게 됩니다.

Vector(덧셈)

벡터는 위치를 알 수 없기에 이렇게 임의 점으로 이어 붙여 직관적으로 확인 할 수 있습니다.

계산은 간단합니다
X는 끼리 더해주고

Y또한 둘이 더해주면 됩니다. 
(X1+X2, Y1+Y2)
  

Vector(뺄샘)

뺄샘은 V2의 X값과 Y값에 -을 곱해주면 반대 방향을 바라보게 됩니다. 
이 반대 방향을 바라보게 한 벡터와 서로 더해주면 됩니다.

벡터 뺄샘

Vector(곱셈)

Vector(나눗셈)
존재 하지 않습니다.

 

대신 스칼라 값과 벡터의 곱셈 나눗셈은 존재합니다. 

결합법칙, 교환법칩 또한 성립합니다.

 

 

단위 벡터

 

단위 벡터란?
방향 데이터만을 갖고 있는 것 입니다.

앞서 소개한 벡터는 크기와 방향을 갖고 있었던것과 차이가 있습니다.

방향만을 갖고 있기 때문에 크기는 무조건 1로 설정합니다.
예시를 한번 살펴보겠습니다.

이 방향 벡터는 언제 사용이 될까요?? 
몬스터가 플레이어를 향해 이동할때 자기만의 스피드로 이동할때 사용이 됩니다.

크기가 있는 벡터로 이동을 한다면 순간이동을 하게 되는 것 처럼 보이겠죠? 

단위벡터 * _speed

유니티,언리얼 같은 경우에는 일반 벡터에서 크기와, 단위 벡터를 구해주는 라이브러리가 기본적으로 제공이 됩니다.

몬스터 - 플레이어
를 통해 두 지점간의 벡터를 구한 뒤 

플레이어가 몬스터를 향해 달려갈때 
vector.nomalize() * _playerSpeed * Time.deltaTime 통해 이동합니다. 

이제 벡터의 기초를 알았으니
다음시간에는 내적과 외적에 관해서 살펴보겠습니다.

'개발 공부 > DirectX12 및 게임수학' 카테고리의 다른 글

[게임수학] 변환행렬  (0) 2022.10.10
[게임수학] 행렬  (0) 2022.10.10
[게임수학] Vector 외적  (0) 2022.03.13
[게임수학] Vector 내적  (0) 2022.03.13
[게임 수학] 삼각함수  (0) 2022.02.17

+ Recent posts