Mathmatics

[스크랩] 벡터의 내적, 외적과 투영

Binceline 2012. 12. 14. 01:20

출처 : http://tobby48.egloos.com/2171843

--------------------

1. 개요

3D 프로그래밍 뿐 아니라, 게임을만들다보면 항상 수학적인 문제에 부딪치게 된다. 그 중 가장 많이 사용되고 필요로 하는 것이 바로 벡터라고 할 수 있다. 이곳에게시하는 내용은 결코 대단하거나 복잡한 부분이 아니라, '벡터의 기본' 에 대해 소개하려고 한다. (아니 사실은 필자가 공식을자꾸 잊어버려서 그냥 가끔 필요 할 때 확인하기 위한 용도이다. 때문에 자세한 수학적인 풀이나 설명은 없다.)

당 내용은 보통 고등학교 수학과 대학 과정에서 다루어지고 있으며, 수학의 '미분과 적분' 의 '벡터의 기본' 장 정도에 등장하는 내용이다.


2. 참고 그림

formula5.jpg

위 그림은 아래에 등장하는 모든 수식에 관련하여 참고용으로 쓰인다.


3. 벡터 기본

1차원 성분으로 표현되는 값을 스칼라라고 한다. 2차원 성분으로 표현되는 값은 벡터라고 한다. 스칼라는 한 가지 값만 표현할 수있는 반면에, 벡터는 방향과 힘을 동시에 표현할 수 있다. 이 게시물은 결코 수학 초보자를 위한 게시물이 아니므로 이 이상의자세한 설명은 생략한다. 벡터에 대해 더 궁금한 사람은 고등 수학 과정의 교과서나 대학 수학 과정의 책을 참고하기 바란다.


4. 벡터 내적

formula8.jpg

formula1.jpg

A 와 B 의 순서가 자유롭게 변경되어도 무관하다. 즉, 곱하기와 더하기만 이용하여 스칼라 값을 도출하므로 내적의 순서는 중요하지 않다.

벡터의 내적은 주로 두 벡터의 각도와 관련된 연산에서 많이 쓰인다.


4. 벡터 외적

formula6.jpg

좌항에서 A 와 B 의 외적 순서가 바뀌면 우항의 순서도 동일하게 바꿔줘야 한다. 즉, A 와 B 의 외적 순서가 달라지면 결과값도 다른 벡터가 도출된다.

외적은 두 벡터와 직각 형태로 교차할 수 있는 3차원 벡터를 도출하므로 두 벡터를 알고 나머지 기저 벡터를 구하는데에 자주 사용된다.


5. 벡터 투영

formula4.jpg

B는 바닥 벡터로, 투영을 시킬 벡터는 자유롭게 변경될 수 있으며 중요한 초점은 바닥 벡터인 B 에 맞춰져 있다. 즉, 바닥벡터를 알고 있다면 바닥 벡터가 가져야 할 크기만 알면 된다. 한 가지 중요한 점은 위의 결과를 연산할 때 반드시 각 연산의순서를 지켜주어야 한다는 점이다.

※ 위의 공식에서 우항의 |B|^2 은 B dot B 로도 표현될 수 있다.
(내적의 특성상 B dot B 는 |B|^2 로 바꿔 쓸 수 있다.)

formula7.jpg

실제로 투영이 된 벡터의 크기(길이) 값은 매우 쉽게 구할 수 있다. 그리고 이 경우에는 벡터 B 는 별로 중요하지 않다.왜냐하면 우리가 알고 싶은 것은 크기(스칼라 값) 이기 때문이다. (대신 벌어진 각도를 알고 있어야만 한다.)


6. 기타

formula3.jpg

이것을 바꿔 생각해볼 때,

formula2.jpg

두 사이의 각도는 이와 같이 표현될 수 있다.


7. 마무리

거듭 말하지만, 본 게시물은 무엇을 공유하거나 보여주기 위한 것이 아니라 본인의 기억력에 한계를 느낄 때 마다 매번 책을 꺼내는 필자의 모습이 너무 안타까워서 게시하는 것이다. 모두들 즐거운 프로그래밍 하시길~

반응형

'Mathmatics' 카테고리의 다른 글

[스크랩] Reflection vector  (0) 2012.12.14
프밍할때 3D 좌표계에 대해..!!  (0) 2012.12.05
Easing Equations  (0) 2012.11.28