Vector 내적 외적 정리
내적
A*B = |A| * |B| * cosθ
두 벡터사이의 각은 코사인의 역함수로 구할 수 있다.
게임에서 내적이 사용되는 사례
물체가 앞에 있는지 혹은 뒤에 있는지 판별
플레이어의 시선(forward)을 기준으로 좌, 우의 내적값은 음수값을 갖는다
→ 내적이 양수라면 앞에, 음수라면 뒤에 있다.
시야각 내에 물체 판별
시야각이 X라 했을 때, 플레이어의 시선(forward)과 물체의 위치 벡터를 내적하여 얻은 각도가 X/2보다 크다면 시야각에 벗어나는 물체이다.
점 A와 평면 S와의 최단 거리 계산(이때, d가 0이라면 점 A는 평면 위의 점이다.)
선과 평면사이의 접점을 구할 때
외적
두 벡터와 모두 직교하는 새로운 벡터를 구한다. 내적과는 달리 교환법칙이 성립되지 않는다. (분배법칙은 가능)
외적 벡터의 크기는 A, B벡터가 이루는 평행사변형의 넓이이다.
두 벡터(A, B)가 평행하면 외적의 크기는 0이다.
게임에서 외적이 사용되는 사례
평면의 법선 벡터(n)를 구하는 데 사용된다. 삼각형의 세 점을 알고 있다면 벡터 2개를 만들 수 있고,
그 두 벡터를 외적하면 법선벡터를 구할 수 있다.
물체가 플레이어 기준 왼쪽인지, 오른쪽인지 구분할 수 있다
Up · (A × F)의 값이 0보다 크면 오른쪽, 작으면 왼쪽에 존재한다.
벽에 부딪혀서 미끄러지는 캐릭터의 방향을 계산할 때 사용된다