• [게임 개발] 내적의 정의 (스크랩)2016.06.08 AM 10:40

게시물 주소 FONT글자 작게하기 글자 키우기
LINK : //tip.daum.net/question/54855462

일단 내적에 대해서는 이해하려고 하지 마시고

그냥 정의로 받아들이시기 바랍니다.

사실 어떻게 정의하든 상관없지만 일반적인 내적의 정의는 다음과 같아요.



단 여기서 θ는 a라는 벡터와 b라는 벡터가 이루고 있는 0과 180도 사이의 각입니다.

는 a 벡터의 크기를 의미하고

는 b 벡터의 크기를 의미합니다.

어떤 책을 보셨는지 모르겠는데, 위의 식이 내적의 정의에요.

가령

가령 위와 같은 두개의 벡터가 있다고 해봐요.

u의 크기는 3, v의 크기는 5라고 가정해봅시당.

그럼

u와 v의 내적은 얼마일까요?

정의대로 하면 되지요.



이 되니까 내적은
u와 v의 내적 =

이 되겠지요.

이렇게 구하는 것이 내적입니다. 내적에 특별한 물리적 의미는 없습니다.
다만 이렇게 정의를 해주면
여러가지 유용한 목적에 사용할 수 있는 것이지요.
가령 가장 대표적으로 님께서 질문하신
사영(projection)을 구할 때 이러한 내적 공식을 활용할 수가 있습니다.

어떻게 활용하는지는 나중에 설명드릴게요.

일단 내적은 그냥 정의로 받아들이시기 바랍니다.
그냥 연습삼아 문제를 몇개 풀어보죠.

이 문제의 내적은 얼마일까요?

답: 1*1.2*cos(90도)=0

이 문제의 내적은 얼마일까요?

답 :

뭐 이런식입니다.

원래 정의가 저런 식이기 때문에,

내적이 얼마냐라고 물으면

그냥 정의대로 구해주시면 됩니다.

이건 마치 1+3이 당연히 4가 된다고 생각하는 것과 같은 것이지요.

하여간..

일단 내적이 주어져 있고 각 벡터의 크기가 주어져있으면

거꾸로 각도를 구할 수도 있지요.

가령,



위와 같은 문제에 대해서
어떤 사람이 이미 정의대로 내적을 구해서 내적을 구한 값이 이미

라는 사실을 알아냈다고 가정해봅시다.

그렇다면 두 벡터 사이의 각은 얼마일까요?

내적의 정의대로 식을 써보면

가 되겠지요.

따라서 위 식에 따라서 Θ를 구해주시면 됩니다.

이렇게 거꾸로 내적이 미리 구해져있다고 가정하고

거꾸로 각도를 구하는 것이 질문하신분이 적어주신 책에 있는 정의가 되겠습니당.

하여간..

원래 대부분의 책에서는 질문하신 분께서 적어주신 방식이 아니라

제가 설명한 방식으로 내적을 설명하고 있다는 사실을 알아두시면 좋을 것 같구요..

한편,

벡터의 경우 좌표를 이용해서 나타내기도 합니다.

이건 이미 배우셨겠죠?

혹시나 해서 예를 하나 들어드리면, 가령, (2차원일 때를 가정해봅시당. 3차원하고 어차피 똑같으니까요)

이런 벡터가 하나 있다고 해봐요.

이벡터를 수식으로 표현해봐라..

이대로는 절대로 못하죠..

왜냐면

좌표계가 없기 때문이죠..

혹은 비슷한 벡터가 있어도 되구요..

하여간.. 위와 같은 벡터를 좌표계로 표현하면,


위와 같은 형태가 되겠죠.

이 벡터를 수식으로 표현하면?

일단 이 벡터의 시작점을 좌표계의 원점으로 평행이동시켜주세요.

그럼 이런 모양이 되겠죠?

이제 위 벡터의 끝점의 x좌표와 y좌표를 다음과 같이 적어주세요.



만약 좌표가 각각 x에서 a, y에서 b라고 가정해봅시다.

이 때 이 벡터는 (a,b)라고 쓸 수가 있습니다.

가령 a가 3이고 b가 2라면

(3,2)라고 쓰는 거죠.

하여간..

벡터는 이렇게 좌표계로 표현할 수 있습니다.

자 그럼 이제 다시한번 벡터와 내적의 관계를 살펴봅시다.

가령 벡터가 두개가 있다고 해봐요.

이번에는 각각의 벡터를 좌표로 표현해보죠.

u=(3,2)

v=(2,3)

그림을 보면 이렇게 생긴 두개의 벡터가 되겠지요.

그렇다면 위 두 벡터의 내적은 얼마일까요?

만약 내적의 정의대로 한다면

u의 크기를 구하고
v의 크기를 구하고
두 벡터가 이루고 있는 각을 구해서
정의대로 구해야 합니다.

당연히 이렇게 구할 수 있죠.

좌표가 이미 다 주어져있기 때문에

각각의 벡터의 크기도 구할 수 있고
코사인 제2법칙같은 걸 써서
각도도 구할 수 있겠지요.

근데...

벡터의 정의대로 이렇게 구하는 방법과 똑같은 결과를 주면서,
더욱 쉬운 방법이 있어요..

바로...

벡터의 좌표를 각각 곱해서 더해주는 거에요.

가령

u=(3,2)

v=(2,3)일 때

3*2+2*3=12

라고 쓰는 것입니다.

그럼 이렇게 구한 게 원래 정의대로 구한 것과 같을까요?

같습니다.

확인해보세요.

u의 크기를 구하고 v의 크기를 구하고 각도를 구해서



공식에 넣어서 구한 것과 정확히 같은 결과를 줍니다.

그래서 적어주신 질문의 마지막 부분에

라는 식을 써준 거에요.
(근데 이 책에서는 잘못된 표기를 사용하고 있습니다. 먼저 답해주신 분의 말처럼 책이 좀 엉터리인듯하네요; 뒤에서 다시 설명해드릴게요)

다시 말하면
원래 내적의 정의는



이지만

만약 u와 v를 좌표계로




로 나타낼 수 있다면

그냥 간단하게



로 해도 결과가 똑같다는 말이죠.

이것은 다시 말해서



가 된다는 것을 말하구요.
(물론 이건 증명이 가능합니다. cosine 제2법칙을 써서 증명하면 위 두 식이 항상 같다는 것을 증명할 수 있습니당.)

결국 이 식을 잘보면 위에서 질문하셨던 공식의 답이 나오죠.

즉,


(2차원인 경우)

의 공식이 나오게 됩니당.

정리하면

1. 원래 내적의 정의는



이다.
2. 만약 벡터를 좌표계로 표현할 수 있다면

위와 같은 내적값을


이렇게 구해도 된다.

3. 두가지 모두 같은 결과를 준다.

4. 내적이 왜 저렇게 정의되는지는 정의이므로 그냥 받아들이시고 ^^
두개의 벡터가 주어졌을 때

(1) 만약 벡터가 크기와 각도가 주어졌다면 첫번째 공식을 사용하시고
(2) 벡터가 좌표계가 주어져있다면 두번째 공식을 사용하시면 됩니다.

두 결과는 항상 같습니다.

그리고 마지막으로 저 책이 왜 엉터리냐면

내적을 표시할 때

절대로!!

라고 쓰시면 안됩니다.

벡터에서는 이렇게 쓰는 건 외적이라고 해서 전혀 다른 의미를 갖습니다.

따라서 위의 책처럼 쓰면 절대로 안되고



위처럼 점으로 표시하셔야 합니다.

명심하세요.

절대로 곱하기 표시를 내적에 쓰시면 안됩니다. 그냥 점을 쓰셔야 합니다!!!!!!!!!!!!!!!!!!!!!!!!!!!!
댓글 : 0 개
친구글 비밀글 댓글 쓰기

user error : Error. B.