본문 바로가기

카테고리 없음

수학 - 정사영에 대하여

오늘 다룰 내용은 벡터의 정사영입니다.

이 부분에 대해서 다루는 이유는 이후 다룰 주제인 obb 충돌처리를 이해하기 위해 필요한 부분이기에

사전에 설명을 해두려고 합니다.

 

정사영을 쉽게 이야기하자면 그림자입니다.

벡터가 평면 위에 있을때 평면에 수직으로 빛을 쏘아서 그 벡터가 만드는 그림자를 정사영이라고 합니다.

 

그렇다면 저 정사영에 대한 정보는 어떻게 구해야할까요.

정사영을 평면에서 생각하는것이 아니라 평행이동시켜 원래의 선분과 같이 삼각형을 이루게 하여

각을 만들어냅니다.

위 그림처럼 각 θ가 생기게되고 그 세타값을 통해 삼각함수로 정사영의 길이를 구할 수 있습니다.

원래의 선분 ab 의 길이 * cosθ 를 한 값이 정사영의 길이가 됩니다.

이 개념은 삼각함수를 이해해야 합니다. 삼각함수는 추후에 다루도록 하겠습니다.

 

선분이 아니라 평면인 경우 넓이가 생기는데 이 경우에도 동일한 방식으로 넓이를 구할 수 있습니다.

다만 이후에 다룰 내용에 꼭 필요한 내용이 아니기에 자세한 설명은 생략하겠습니다.

 

벡터의 정사영에 대한 표기는 proj를 사용합니다.

정사영의 영단어인 projection을 의미합니다.

 

위의 이미지처럼 벡터 U 위에 벡터 V 의 정사영을 표기할 경우 proj u V로 표기합니다.

이 정사영을 구하는 방법은 벡터 U와 동일한 방향에 특정한 길이를 가지는 벡터이므로

두 정보를 통해 구할 수 있습니다.

https://gaussian37.github.io/math-la-projection/

위처럼 벡터의 길이를 구하는 앞부분과 벡터 U의 방향을 구하는 뒷부분이 합쳐진 식으로

결과를 구할 수 있습니다.

이때 뒷부분은 단위 벡터를 구하는 방식과 동일합니다.

 

이 개념을 토대로 다음번엔 3차원에서의 충돌처리를 구현해 볼 예정입니다.