벡터의 외적이란?

서로다른 두 벡터 각각에 수직인 방향벡터를 만드는 것.

외적의 공식

외적의 특징

1. 벡터 A와 B의 외적 A X B는 벡터 A와 수직이고, B와도 수직이다.

2. 내적과 달리 교환 법칙이 성립되지 않으며, 순서를 바꾸면 반대 방향의 벡터가 나온다. A X B = -(A X B)

3. 내적과 동일하게 분배 법칙은 성립한다. A X ( B + C ) = ( A X B ) + ( A X C )

4. 외적의 벡터의 크기는 평행사변형의 넓이 이다.

5. 두 벡터가 평행하면 크기는 0이다. sin0의 값이 0이기 때문이다.

 

왼쪽 오른쪽 판별하기

월드 공간의 UP 방향 벡터를 U, 플레이어의 Forward 방향을 F, 플레이어에서 물체를 가르키는 방향을 A라고 했을 때, 벡터 F와 벡터 A를 외적한다. 이 외적한 벡터를 월드 벡터와 내적을 하였을 때, 양수이면 오른쪽 음수이면 왼쪽에 존재하게 된다.

'게임 수학' 카테고리의 다른 글

투영 행렬 유도하기  (0) 2019.12.17
백페이스 컬링  (0) 2019.12.17
내적을 사용한 시야 판별  (0) 2019.12.17
평면의 방정식과 평면의 공간적 해석  (0) 2019.12.17
투영 벡터 공식 유도  (0) 2019.12.17

두 벡터의 내적을 알면 내적의 성질을 통해 두 벡터의 사이각을 알수 있다.

내적의 성질

사이각의 크기에 따라 코사인 값이 변한다는 것을 알 수 있다. 우리는 또한, 코사인의 값의 범위는 -1~1까지 한정되어있다는 것을 알고 있다.

코사인 곡선을 보면, 우리가 원하는 답을 알 수 있다.

코사인 곡선

코사인 곡선을 살펴봤을때, 코사인의 값이 양수인경우 사잇각의 범위는 -1/2 π ~ 1/2 π이며, 음수인 경우의 범위는 1/2 π ~ 3/2 π의 범위값을 가진다. 이것을 이용하여, 다시 첫번째 그림을 보자.

두 벡터의 원점이 플레이어의 위치고, 플레이어가 Forward 방향으로 바라보았을 때, 생기는 시야각을 θ 라고 가정을 하였을때, Forward 벡터와 물체와 주인공의 거리 차이로 나오는 벡터 A 간의 내적을 통해 나오는 각도 값이 θ/2 를 넘지 않아야 시야 내에 존재한다는 것을 판별할 수 있다.

 

-평면의 방정식

 3차원에서 평면은 평면의 방정식으로 해석이 가능하다. 위의 그림의 평면 S는 다음과 같은 식으로 정의할 수 있다.

평면의 방정식을 다시 일반화하면 다음과 같이 정의 할 수 있다.

즉, a,b,c는 평면 안에 속해 있는 임의의 세 점을 선분으로 이은 두 벡터의 외적을 구한 후, 그 외적으로 부터 도출된 벡터의 세 성분이 되며, d는 두 백터의 내적으로 구할 수 있다.

 

-평면의 공간적 해석

 1) a,b 는 0이 아니고 c = 0 일때, z 축에 평행한 평면이 된다.

 2) b,c 는 0이 아니고 a = 0 일때, x 축에 평행한 평면이 된다.

 3) a,c 는 0이 아니고 a = 0 일때, y 축에 평행한 평면이 된다. 

 4) a는 0이 아니고 b=c=0 일때, yz 평면에 평행한 평면이 된다.

 5) b는 0이 아니고 a=c=0 일때, zx 평면에 평행한 평면이 된다.

 6) c는 0이 아니고 a=b=0 일때, xy 평면에 평행한 평면이 된다.

 

 이 때, d값은 특수한 상황일 때, 특수한 성질을 띄게 된다.

원점에서 평면에 수선을 내리는 경우

이 경우, H는 평면상의 점이 되며, 법선벡터 N과 같은 방향 벡터가 된다. 즉, 이 값은 다음과 같다.

이 값을 평면의 방정식에 대입하게되면, d의 값은 벡터OH의 크기의 절댓값과 같게된다.

즉, 평면의 방정식에서 d의 의미는 평면에서 원점까지의 최단거리를 의미하게 된다.

 

투영 벡터란?

 

투영 벡터

그림과 같이, OA의 벡터를 OB에 투영했을때 생기는 벡터 OA'를 의미하는 것이다.

 

OA에서 OB로 수선을 긋게되면 직각삼각형 OAA'이 생기는데, 여기에서 삼각함수을 이용하여 투영벡터를 구하는 공식을 구할수 있습니다.

직각삼각형 OAA'에 의해서, OA'의 길이 즉, 스칼라 값은 다음과 같이 정의됩니다.

그러나 우리가 알고싶은 것은, OA'의 벡터 값입니다. 그러기 위해서는 OB의 단위벡터의 값을 알아내면 구할 수 있습니다. 즉, 벡터 OB의 정규화가 필요합니다.

단위 벡터를 알아 냈으니, 단위벡터에 스칼라값을 곱하면 즉, 크기가 1인 방향벡터에 크기값을 곱하면 우리가 원하는 투영벡터를 구할수 있습니다.

이것을 두벡터로만 고치면 다음과 같게 변경할 수 있습니다.

벡터의 내적이란?

 

원점을 중심으로한 두 벡터 a,b의 성분 값들의 곱셈을 의미합니다.. 

 

일반적인 내적의 정의는 다음을 따릅니다.

또한, 내적은 다음의 성질이 있습니다.

내적의 공식을 유도하는 방법은 다음과 같습니다.

이러한 삼각형이 있다고 가정을 하자

코사인 법칙에 의해서 cosθ는 다음과 같이 나타낼 수 있습니다.

코사인 법칙

 

-선형 변환이란?

선형 결합을 보존하는, 두 벡터 공간 사이의 함수.

 

선형 변환은 1) 선형 결합의 보존과 2) 벡터 사이의 함수라는 것을 의미합니다.

벡터의 덧셈 법칙
벡터의 곱셈 법칙

선형 결합이란 위의 성질들을 의미하는데, 이러한 성질들이 보존되면서, 동시에 함수로 이루어지는 것입니다. 모든 벡터는 기저 벡터를 통해 다음과 같이 나타낼 수 있습니다.

 

즉, 단순히 (2,1)이라는 벡터들도 기저벡터들의 선형 결합을 의미한다는 것입니다. 

 

수학에서 선형대수학의 기본정리를 통해 모든 선형 변환은 대응하는 행렬이 존재한다는 정리를 가지고 있습니다.

그림과 같이 선형 변환 L : U -> V가 있다고 하면, 이에 대응하는 행렬이 있다는 것을 의미합니다. 이런 변환을 하는 행렬을 M이라고 했을 때, 다음과 같이 표현할 수 있습니다.

2차원의 공간벡터는 1x2행렬로 표현이 가능하며, 이에 대응하는 행렬은 2x2행렬로 표현이 가능하다. 위 그림은 다음과 같이 표현이 가능하다.

같은 2차원 기저 벡터를 사용하면, 2차 정방 행렬을 통해 선형 변환이 가능하다는 것을 알 수 있다.

+ Recent posts