[수학] 외적
외적
외적(Cross Product)은 두 벡터를 입력으로 받아 3D 공간에서는 새로운 벡터를, 2D 공간에서는 스칼라 값을 반환하는 연산입니다.
정확히는 2D 공간에서 외적 값은 스칼라 값으로, 두 벡터의 회전 방향(양수/음수)을 판별하는 데 사용됩니다.
3D 공간에서 외적 결과는 새로운 벡터이며, 두 벡터에 동시에 수직한 방향을 가집니다.
외적의 결과 벡터는 입력된 두 벡터와 수직(Orthogonal, 직교)하는 방향을 가집니다.
벡터들의 방향을 판별하거나, 평면의 법선 벡터(Normal Vector)를 구할 수 있습니다.
2D 게임에서 객체가 왼쪽에 있는지, 오른쪽에 있는지를 판별하는 데 유용합니다.
3D 게임에서는 외적을 사용하여 표면의 법선 벡터(Normal Vector)를 계산할 수 있습니다.
법선 벡터는 빛의 반사, 충돌 판정, 물리 연산 등에 중요한 역할을 합니다.
외적의 수학적 정의
2차원 벡터에서의 외적은 다음과 같습니다.
2차원 벡터 $A = (A_x, A_y)$ 와 $B = (B_x, B_y)$의 외적은 단일 스칼라 값으로 정의됩니다.
$A \times B = A_x B_y - A_y B_x$
이 값은 두 벡터가 반시계 방향인지(양수), 시계 방향인지(음수), 아니면 동일한 선상에 있는지를 판별하는 데 사용됩니다.
3차원 벡터에서의 외적은 다음과 같습니다.
3차원 벡터 $A = (A_x, A_y, A_z)$ 와 $B = (B_x, B_y, B_z)$의 외적은 새로운 3차원 벡터로 정의됩니다.
이때, 두 벡터의 외적 결과는 입력 벡터와 동시에 수직(Orthogonal)한 새로운 벡터가 됩니다.
외적의 기하학적 정의
외적은 기하학적으로 두 벡터가 이루는 평면에 수직인 벡터, 법선 벡터를 찾는 과정입니다.
이를 통해 벡터들의 방향 관계를 판별할 수 있습니다.
- 2차원 공간 (평면)
- 외적 결과가 양수면 벡터 $B$ 가 벡터 $A$ 를 기준으로 반시계 방향
- 외적 결과가 음수면 벡터 $B$ 가 벡터 $A$ 를 기준으로 시계 방향
- 외적 결과가 0이면 두 벡터가 동일한 선상 (일직선)
- 3차원 공간
- 외적의 결과는 두 벡터에 수직한 새로운 벡터를 형성
- 이 벡터는 오른손 법칙(Right-Hand Rule)에 따라 방향이 결정
오른손 법칙(Right-Hand Rule)
외적의 방향을 결정할 때 오른손 법칙을 사용합니다.
- 첫 번째 벡터(A)를 손가락 방향으로 설정
- 두 번째 벡터(B)로 손을 감싸듯이 이동
- 엄지손가락이 가리키는 방향이 외적 결과 벡터의 방향
즉, $A \times B$ 는 오른손의 엄지가 가리키는 방향을 따릅니다.
언리얼 엔진은 왼손 좌표계를 사용합니다.
그러나 외적(Cross Product) 계산은 수학적으로 오른손 법칙(Right-Hand Rule)을 따르는 표준 수식을 사용합니다.
결과 벡터의 방향을 해석할 때 좌표계가 다르면 실제로 벡터가 가리키는 방향이 기대하는 방향과 다를 수 있습니다.
외적의 크기
외적 벡터의 크기는 다음과 같이 주어집니다.
$\vert A \times B \vert = \vert A \vert \vert B \vert \sin \theta$
$\vert A \vert$와 $\vert B \vert$는 벡터 $A$와 $B$의 크기(길이)입니다.
$\theta$는 두 벡터 사이의 각도입니다.
$\sin \theta$가 포함되므로, 두 벡터가 평행($\theta = 0^\circ$ 또는 $180^\circ$)할 경우 외적은 0이 됩니다.
외적의 활용
외적은 게임 개발에서 법선 벡터 계산, 회전 방향 판별, 충돌 판정, 카메라 회전, 지형 경사 판단 등 다양한 곳에서 사용됩니다.
방향 판별
플레이어를 기준으로 특정 지점 판별하기(왼쪽/오른쪽)
AI적의 탐색 방향 설정, 플레이어의 이동 방향 감지 등에 활용될 수 있습니다.
- 플레이어의 위치: $P = (0, 0)$
- 플레이어가 바라보는 방향 벡터: $F = (1, 0)$ (오른쪽을 바라봄)
- 대상 위치: $T = (0, 3)$ (위쪽)
타겟 방향 벡터
$D = T − P = (0 − 0, 3 − 0) = (0, 3)$
외적 계산
$F \times D = (1 \times 3 − 0 \times 0) = 3$
결과가 양수이므로, 대상은 플레이어의 왼쪽에 위치합니다.
만약 타겟 위치가 $T = (0, -3)$ (아래쪽)일 경우 다음과 같습니다.
외적 계산
$F \times D = (1 \times -3 − 0 \times 0) = -3$
결과가 음수이므로, 대상은 플레이어의 오른쪽에 위치합니다.
삼각형의 법선 벡터 계산
- 삼각형의 세 점: $P1 = (1, 0, 0), P2 = (0, 1, 0), P3 = (0, 0, 1)$
- 두 벡터 정의:
$V_1 = P_2 - P_1 = (-1, 1, 0)$
$V_2 = P_3 - P_1 = (-1, 0, 1)$
외적 계산
\[A \times B = \begin{bmatrix} A_y B_z - A_z B_y \newline A_z B_x - A_x B_z \newline A_x B_y - A_y B_x \end{bmatrix}\] \[N = V_1 \times V_2 = \begin{bmatrix} (1 \times 1 - 0 \times 0) \newline (0 \times (-1) - (-1 \times 1)) \newline (-1 \times 0 - 1 \times (-1)) \end{bmatrix} = (1, 1, 1)\]삼각형의 법선 벡터는 $(1,1,1)$이며, 이는 삼각형 세 점이 이루는 평면에 수직인 벡터입니다.
댓글남기기