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 |