[Unity] 48. 벡터의 내적과 외적의 활용

Connected Brain·2025년 5월 9일

면접 질문 대비

목록 보기
48/60

벡터의 내적과 외적을 어느 상황에 사용할 수 있는지 설명해주세요.

내적

  • 내적은 한 점에서 다른 점으로 선을 그었을 때, 방향을 구하는 데에 자주 활용됨
  • 두 벡터의 요소를 곱해 나온 값을 더해 구할 수 있음
  • A ⋅ B 형태로 쓰며 스칼라 값을 반환
  • A ⋅ B = |A| |B| cosθ 가 성립하는 점을 이용해 cosθ를 구하는데 활용 가능
  • 두 벡터에 대한 내적의 반환 값이 양수일 경우 0~90도 사이, 0 이면 수직, 음수면 90~180도 사이에 위치한 것임
    Ex) IK 에서 한 점에서 다른 점으로 향하는 각도를 구함
mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
//mousePos로 향하는 벡터
dir = mousePos - point;

// dir의 크기가 0이 아닌지 확인
if (dir.magnitude > 0)
{
    angle = Mathf.Acos((mousePos.x - point.x) / dir.magnitude) * (180 / Mathf.PI);

    if (mousePos.y < point.y)
    {
        angle *= -1;
    }
}
  • cosθ = (A ⋅ B) / (|A| |B|) 내적의 정의에서 파생된 원리를 활용

외적

  • 두 벡터를 연산해 벡터를 반환함
  • |A × B| = |A| |B| sinθ를 성립하는 특성을 가짐
  • 두 벡터를 통해 만들어지는 평면에 수직인 벡터를 구할 수 있음
  • 이를 통해 해당 벡터의 방향이 카메라를 향하는지, 혹은 반대방향을 향하는지에 따라 메쉬의 앞, 뒤를 구분할 수 있음

0개의 댓글