티스토리 뷰

약간주절주절

오랜만에 해당 카테고리에 글을 쓰는 내게 감격하여 잠깐 혼잣말.

아아아주 오랜만에 아아아아아주

천만년만에 이 카테고리에 글을 쓴다.

이 글을 올렸을 때 이 카테고리에 등록되는 글은 총 4개일뿐이다.

몇개일뿐이다 띄어쓰기 어떻게 하지?

몇 개일 뿐이다. 이건가?

모르겠어

아무튼 이 글을 쓰면 이 카테고리는 작심삼일 명찰을 겨우 벗게 된다는 소리.

어느날 내가 생각없이 이 글을 클릭했다가 이 부분을 읽게 되었을 땐 더 많은 글이 있을 수도 있겠지. 없을 수도 있겠지.


벡터

(크기와 방향을 다 가진 양이다. (부자))

고등학생들에게 그저 빨간동그라미 몇개 더 안겨주는 벡터가

3d 게임을 프로그래밍 하는데에 있어서는 없어선 안될 평생의 동반자...★

벡터가 없는 3d 게임은 부리없는 딱따구리(네 다음헛소리)


모든 객체들은 벡터연산을 통해 움직이며

각종 효과등도 벡터 연산을 통해 이루어진다.

3차원 게임세상을 밝게 비춰주는 빛도

나를 졸졸 쫓아다니는 1인칭 시점 카메라도 

나와 상대방의 충돌도 등등등등 많은 것들이 벡터가 있어야....


독일 사람 헤르만 권터 그라스만씨가 아무런 수학교육도 받지 않고 선형대수학을 개발하면서 만들어내신 벡터.

   

(대다내 ㅠㅠㅠ)

벡터공간에 대한 개념을 만드시면서

벡터 친구들끼리의 연산에 대해서도 만들어내신다.


그중 하나가 내적이다.


내적

두 벡터를 곱해서 스칼라값을 얻는 연산이다.


평면 또는 공간에 존재하는 영벡터가 아닌 두 벡터a,b에 대하여

두 벡터 선분이 이루는 각의 크기 중 작은 쪽을 θ(세타)라고 하자

(무조건 작은 쪽이다. 그러니까 결국 θ는 0보다 크거나 같으며 파이보다 작거나 같다는 소리이다.

즉 0≤θ≤π)

이 두 벡터를 곱해 스칼라값이 나오게 하는 곱셈을 내적이라고 한다.

(참고로 외적이 곱해서 벡터를 얻는 연산)


벡터 a, b를 이렇게 쓰고

크기와 방향을 가진 벡터에게서 크기만을 나타내고 싶을때 이렇게 쓴다면

두 벡터의 내적은 이렇게 나타내고

벡터a의 크기와 벡터b의 크기와 두 벡터가 이루는 사잇각(좁은쪽)을 모두 곱한것이다.


θ가 예각일 때 

의 크기에 의 로의 정사영() 을 곱한 것이라고도 설명할 수 있다.

반대의 경우도 성립한다.

(정사영 참고 그림인데 참고가 될까..?)



이때 두 벡터중 하나가 영벡터라고 한다면(영벡터가 아니라고 했지만)

둘의 각의 크기를 정할 수 없어도 

이기 때문에

두 벡터의 내적값은 0이된다. 

즉 

그리고 

(벡터 a,b가 같다) 이면 θ = 0 (두 벡터가 이루는 각은 0) 이므로

따라서


일 때

(두 벡터 a,b 모두 영벡터가 아닐때)

모두 항상 0보다 크므로 결국 값이 부호를 결정하게 된다.

즉 아래와 같다.



아래 이미지는 코사인그래프이다. 해당 그래프로 확인해보자면

(이미지 출처: 네이버 지식백과)

에 따라서 내적값의 부호가 어떤지 한눈에 알 수 있다.


아래 이미지는 조금더 정확한 코사인수치를 표현한 것인데

(이미지 출처: 유니티 메뉴얼)

코사인에 대한 몇몇 값을 기억하고 있다면

길이가 1인 두 단위벡터의 내적값에 대해서도 어느정도 예측할 수 있게 된다.



그리고 여태까지

이렇게 나타낸 식을 

제이코사인법칙을 이용해 다시 표현해보면

이렇게 나타나는데

두 벡터의 각 요소들을 각각 곱해 모두 더한 스칼라값이 내적값이 된다.

설명은 계속2차원 벡터로 했지만 3차원 벡터또한 마찬가지.


요래조래 풀어써보면

위처럼 이래저래 조합하여 원하는 값을 얻어낼 수 있고

(글씨가 날아다니지만 수식입력기에 현타옴.) 



내적은 교환, 실수배, 분배법칙이 성립한다.



그리고 재미있는 부분(뭐가?)

내적은 행벡터와 열벡터의 곱셈과 연관되어있다.


개념은 여기까지이다.


수학적 접근을 하였지만 물리적으로도 접근이 가능하다.

화두는 던졌지만

그 이상은 생략하겠다. 글이 딴 길로 새다보면 다시 돌아오지 못할 수도 있다.(더이상 찾기 싫어서가 아니다)


게임제작시에 빛 연산도 벡터의 내적을 이용한다고 위에서 밝혔었는데

앞에 개념에서 나타나듯이 내적 연산은 3d게임 프로그래밍 에서 상대적으로 큰 비용이 들지 않으므로 

요긴하게 잘 쓰인다.


빛이 닿는 부분에 대해 따져보았을 떄 빛을 많이 받을 수록 내적값이 1에 가까워지고 빛을 적게 받을수록 내적값이 0에 가까워진다.

0일 땐 빛과 수직인 상태이며

그림에서 화살표를 그리진 않았지만 및을 받지 않는 부분은 내적값이 0보다 작겠지..


다음에는 외적에 대해 적어두어야지


이상.

'mmmmmmmmmmmmmmath study' 카테고리의 다른 글

역행렬 구하기(크라메르 법)  (2) 2017.06.11
역행렬  (0) 2017.06.11
행렬 matrix 이야기  (0) 2017.06.11
댓글