1. 내적

A벡터와 B벡터의 내적은 다음과 같이 계산할 수 있다.

A·B = (Ax * Bx + Ay * By + Az * Bz)

또는

A·B = |A|*|B|*cosθ

 

내적이 의미하는 것

A벡터의 B에 대한 투영 벡터의 길이

투영 벡터는 A*B값을 B단위 벡터에 곱하는 것으로 구할 수 있다.

A벡터와 B벡터의 사이 cos값(A와 B가 단위벡터일 때만 성립)

 

 

2. 내적을 통해 적이 주인공의 시야각 안에 들어와 있는지 판별하려면?

주인공의 시야각을 θ라고 하면, Forward 벡터와 적과 주인공의 거리 차이로 나오는 벡터 A 간의 내적을 통해

나오는 각도 값이 θ/2 를 넘지 않아야 시야 내에 존재한다는 것을 판별할 수 있다.

역시 각도를 다 구하기보다 cos 값으로 판단해야 연산이 적다.

1. 평면의 방정식

 

평면의 방정식은 아래처럼 기술할 수 있으며, (a, b, c)는 평면에 대한 법선(수직) 벡터이고

D는 이 법선 벡터의 길이(크기) 입니다. (x,y,z)는 평면상의 임의의 점이다.

 

점 (x1, y1, z1)을 지나고, 벡터 v = ( a, b, c )에 수직인 평면의 방정식은

a(x - x1) + b(y - y1) + c(z - z1) = 0

-> ax + by + cz - (ax1 + by1 + cz1) = 0

-> ax + by + cz + d = 0

 

평면은 최소한 점 3개가 정해지면 평면의 방정식이 명확히 정의된다. 즉, 평면 상의(x1,y1,z1)과(x2, y2, z2) 그리고

(x3, y3, z3)가 정해지면 위의 공식에서 A, B, C, D의 값이 정해진다는 의미이다. 

 

<D의 의미>

평면의 방정식 기본형 : ax + by + cz + d = 0 

위 공식에서 D는 원점부터 평면까지의 거리를 의미한다.

구하는 방법은 평면의 정규화된 법선 벡터와 평면 위 지점 내적으로 계산하면된다.

 

세 점 A(x1, y1, z1), B(x2, y2, z2), C(x3, y3, z3)를 지나는 평면의 방정식

ax + by + cz + d = 0

 

a = y1(z2 - z3) + y2(z3 - z1) + y3(z1 - z2)

b = z1(x2 - x3) + z2(x3 - x1) + z3(x1 - x2)

c = x2(y2 - y3) + x2(y3 - y1) + x3(y1 - y2)

d = -(x1(y2 x3 - y3 z2) + x2(y2 x1 - y1 z3) + x3(y1 x2 - y2 z1))

 

 

w를 v에 투영한다는 것은

 

일직선의 벡터를 얻고 싶다는 것을 뜻한다.

 

직각 삼각형이므로 cosA = 밑변/빗변

cosA = ||v|| / ||w||

||v|| = ||w||cosA

빨간 선의 길이 = ||w||cosA

 

길이는 구했지만, 우리가 얻고 싶은 것은 벡터이다.

길이가 1인 v를 방향 벡터와 길이를 곱해주면 구하고자 했던 벡터를 구할 수 있다.

 

v의 방향 벡터 = v / ||v||

투영벡터 = ( v / ||v|| ) * ||w||cosA

 

하지만 두 벡터 사이의 각 A를 우리가 평소에 알리가 없다.

그래서 쓰는 차선책 v * w(v와 w의 내적) = ||v|| ||w|| cosA라는 사실을 응용하여

 

(v * w) / ||v|| = ||w|| cosA 이런 식을 만들어 낸다.

 

그래서 두 벡터만 주어졌을 때, 한 벡터를 다른 벡터에 투영하는 공식은

 

투영 벡터 = ( (v * w) / ||v||) * ( v / ||v|| )

가 나오게 된다.

내적은 프로그래밍 등 실제 연산 할 때 필수로 쓰이고 엄청 많이 쓰이는 연산이다.

단어 내적의 "적" 은 쌓다, 저축 이런 뜻인데 두 벡터의 원소들을 각각 곱하고 차곡차곡 더한것이라는 뜻이다.

 

아래는 두 벡터의 a, b이다.

a의 성분을 (x1, y1, z1)라 하고

b의 성분을 (x2, y2, z1)라 하면

내적은 a·b = x1*x2 + y1*y2 + z1*z2이다.

보통 내적을 구할 때 공식은 a · b = |a| |b| cosθ라고 배우는데 이것이 왜 a·b = x1*x2 + y1*y2 + z1*z2과 같은지

증명 해보겠다.

 

먼저 내적을 증명하기전에 코사인 제2법칙을 알아야한다.

 

제1코사인 법칙을 먼저 알면 제2코사인 법칙도 쉽게 알 수 있다.

 

1. 제1코사인 법칙

위와 같은 삼각형이 있을 때 꼭지점(각도)는 대문자 A,B,C 꼭지점에서 마주보는 선분은 소문자 a,b,c로 나타내 준다.

이 때

를 제 1코사인 법칙이라고 한다.

 

2. 제2코사인 법칙

 

제1코사인 법칙

제1코사인 법칙에서 a = bcosC + ccosB에 a를 곱해주고 두번 째 공식에는 b를 세번째 공식에는 c를 곱해준다.

변형된 식을 다음과 같이 만들어 빼준다.

a^2 - b^2 - c^2 의 식에서 a^2 - b^2 먼저 풀어준다.

나온 값에 c제곱을 빼주게 되면 -2bccosA가 나온다.

 

a2를 기준으로 이향해줍니다.

3. 내적 증명

이제 제1, 2코사인 법칙에 대한 설명이 끝났으니 이어서 내적 증명을 해보겠다.

먼저 위와 같은 삼각형에서 제2코사인법칙에 의해

로 나타낼 수 있다.

 

제2코사인법칙을 이용해서 나타내주면 다음과 같다.

결과는 아래의 결과와 같다.

그리고 각각 선분의 크기를 구해주면 아래와 같다.

선분 AB의 크기

 

선분 OA의 크기

 

선분 OB의 크기

 

첫번 째 결과

에서

를 없애기 위해 아래와 같이 해준다.

 

계산한 결과 (1)의 결과를 얻을 수 있다.

두번 째 결과

각 벡터의 내적을 계산해보겠다. 위에서 구한 각 선분들 크기를 대입해주고 풀어주면 아래와 같이 나온다.

아까 (1)식과 (2)식을 비교해보면

(1) 결과

 

(2) 결과

 

2를 양변에 나눠주면 각 원소의 곱들의 합이 내적공식이 된다.

+ Recent posts