Study

[그래픽스] 벡터의 내적과 외적을 이해해보자

시카Dev 2025. 1. 23. 16:48

학교에서 배웠던 기하와 벡터+선형대수학 개념을 끄집어보자~~

내가 이해한 것을 적은 것이므로 의견이 강하게 들어가 있다

 

 

벡터의 내적: 두 벡터가 얼마나 겹치는가? → 스칼라 값이 나옴

가령 좌표에 저 두 벡터 a, b가 있다고 해보자

그리고 a벡터 위에 빛을 쪼아보자. 햇빛이던 스탠드던 다 좋다 그리고 이걸 정사영이라고 부르자

그렇다면 그림상 b벡터 위에 빗금만큼 a벡터가 겹칠 것이다

 

삼각함수로 삼각형의 빗변, 밑변, 대변을 정의할 수 있는데 증명은 생략하겠다

 

삼각함수 이해하기(sin, cos, tan)

해당 포스팅은 한 커뮤니티 싸이트에서 본 양질의 게시물을 좀 더 많은 사람에게 공유하기 위한 목적으로 재 업로드 합니다. 문제 발생 시 삭제하겠습니다. lab.gamecodi.com/board/zboard.php?id=GAMECODILAB_

hub1234.tistory.com

 

무튼 삼각형의 밑변은 코싸인으로 즈엉의할 수 있다

이처럼 겹치는 정도는 결국 밑변이 되기에, 벡터 a와 b의 내적은 |a||b| x cos가 된다

 

이때 당연하겠지만 각의 크기가 클수록 벡터 a가 b에 겹쳐지는 부분은 줄어든다

때문에 두 벡터가 수직 상태가 된다면 겹치는 부분이 없으므로 내적값은 0이다

반대로 평행하다면? 두 벡터의 크기가 1이라는 가정 하에 내적도 1이 된다

 

 

 

벡터의 외적: 두 벡터에서 수직인 벡터는 무엇인가? → 벡터 값이 나옴

외적은 두 벡터의 수직인 벡터를 구한다. 정확히는 두 벡터가 이루는 평면에서 수직인 벡터를 구한다.

그래픽스에서는 노말벡터(=법선벡터) 라고도 한다. 또한 내적과 다르게 교환법칙이 성립하지 않는다

내적이 inner product라면 외적은 outer product이다

 

외적값이 양수라면 그 벡터의 방향은 윗부분이고 음수라면 아래방향이다. 이걸로 모델링에서 앞 뒤 구분을 한다

외적의 크기는 두 벡터의 평행사변형의 크기와 같다(사진)

 

 

어떻게 3D처럼 튀어나온 수직 벡터의 길이가 2D 평행사변형의 크기와 똑같을까?

외적 벡터는 방향을 알려주는 역할도 하지만, 크기 자체는 두 벡터가 만드는 평행사변형의 넓이를 나타내기 때문이다

 

가령 a벡터는 (1, 0)이고 b벡터가 (0, 1)일 때 넓이가 1인 평행사변형이 만들어진다

그 두 벡터에 수직인 axb벡터는 (0, 0, 1)이며 크기는 1이다.

a벡터와 c벡터는 평행하므로 평행사변형의 크기는 0, 외적의 크기도 0이 된다.

 

외적은 평행사변형의 넓이와 정확히 일치하는 크기를 가지도록 설계된 연산이라 볼 수 있다

 

 

나는 그림판으로 그렸는데 이 자료가 더 깔끔한 것 같다

'Study' 카테고리의 다른 글

[C++] Array와 Pointer  (0) 2025.02.05