본문 바로가기
3D Algorithm

벡터 내적 활용(개발자 관점)

by DarkRock 2023. 10. 30.
반응형

벡터의 내적은 영어로 Inner Product, Dot Product라고 부르며 3차원에서 계산은

1. a•b = a.x*b.x + a.y*b.y + a.z*b.z   
2. a•b = |a||b|cosθ
두 가지 방식으로 계산할 수 있습니다.

 

주로 개발을 할 때 계산은 1 번식을 사용하고, 값의 예측은 a, b 두 벡터를 단위 벡터로 만든 후 2 번식의 cosθ로 할 수 있습니다.

 

벡터 a, b를 단위백터로 만들면 |a|=|b|=1로 볼 수 있고(벡터를 길이 1로 정규화시키기 때문), 내적의 값은 cosθ로 나오게 됩니다.
a.x*b.x + a.y*b.y + a.z*b.z = cosθ

 

cosθ 그래프는 2파이를 주기로 1 ~ -1 값을 갖는 그래프입니다. 그래서 두 벡터를 단위백터로 만든 후 내적을 하게 되면 그 내적의 값은 1 ~ -1 값을 갖게 됩니다.

cosθ 그래프

 

또한 cosθ에서 θ는 두 벡터의 사이각이기 때문에 두 벡터가 이루는 각이 0도이면 내적 값이 1, 90도이면 0, 180도이면 -1을 갖게 됩니다. 이 점을 이용해서 두 벡터의 내적 값이 양수면 두 벡터가 대략 같은 방향이라고 볼 수 있고, 음수면 반대 방향으로 판별이 가능합니다.

 

이처럼 내적은 정사영 뿐만 아니라 두 벡터를 단위 벡터로 만든 후 방향성을 판별할 때도 쓰일 수 있습니다. 내적은 3차원 공간에서 유용하게 쓰이는 경우가 많으니 잘 활용하기 바랍니다.

반응형