→ 이 글은 「이득우의 게임 수학」을 바탕으로 작성했습니다.
■ 삼중곱
벡터의 외적과 내적을 두 번 연속 사용하는 연산을 삼중곱(Triple product)이라 한다.
삼중곱 식을 세우려면 3개의 벡터$(\vec u, \vec v, \vec w)$ 가 필요하며, 순서에 따라 다음과 같은 경우의 수가 생긴다.
- $\vec u\cdot(\vec v \cdot \vec w)$
- $\vec u\cdot(\vec v \times \vec w)$
- $\vec u \times (\vec v\cdot \vec w)$
- $\vec u \times (\vec v\times \vec w)$
이 중, 1번 연산은 괄호 안의 내적 값은 스칼라가 되어 벡터를 세 번 곱했다고 보기 어렵고, 3번 연산은 벡터와 스칼라의 외적은 불가능하다.
- 따라서 2번과 4번 연산만이 유효한 삼중곱 연산이 된다.
1. 스칼라 삼중곱
2번 연산을 4번 연산과 구분하기 위해 별도로 스칼라 삼중곱(Scalar triple product)라 부른다.
물체가 좌/우에 있는지 판별할 때 사용한 식$\vec y \cdot (\vec f \times \vec v)$이 바로 스칼라 삼중곱이다.


임의의 벡터 $\vec u$의 크기를 법선 벡터 $\vec v \times \vec w$에 수직으로 투영한 벡터의 높이는 $\cos$$\theta$에 비례한다.
그렇다면 높이 $|\vec u| \cos\theta$에 평행사변형의 넓이 $|\vec v \times \vec w|$를 곱하면, 아래처럼 육면체의 부피가 나온다.

$$ |\vec u||\vec v \times\vec w|\cos\theta = |\vec u \cdot (\vec v \times \vec w)| $$
이는 스칼라 삼중곱이 만들어내는 값의 절대값과 동일하다.
- 따라서 스칼라 삼중곱의 절댓값은 세 벡터가 만드는 평행육면체의 부피를 의미한다.

세 벡터 중 바닥을 향하는 두 벡터를 변경해도 최종 육면체의 부피 값은 변하지 않으므로, 삼중곱의 결과는 동일하다.
$$ \vec{u} \cdot (\vec{v} \times \vec{w}) = \vec{v} \cdot (\vec{w} \times \vec{u}) = \vec{w} \cdot (\vec{u} \times \vec{v}) $$

스칼라 삼중곱은 세 벡터가 모두 선형 독립인지 판별하는데 사용된다.
삼중곱의 값이 0이 나오는 경우는, 평면을 이루는 두 벡터$(\vec v, \vec w)$가 평행이거나, (b)와 같이 두 벡터가 만드는 평면에 벡터 $\vec u$가 속하는 경우이다.
- (a)의 경우 평행한 두 벡터를 외적하므로 영벡터가 되고, 최종적으로 스칼라 삼중곱 값은 0이 된다.
- (b)의 경우 $\vec v \times \vec w$로 만들어진 법선 벡터와 $\vec u$는 직교하므로 이의 내적은 0이 된다.
즉, 스칼라 삼중곱이 0이 아니면 세 벡터는 모두 선형 독립의 관계를 가짐을 알 수 있다.
2. 벡터 삼중곱
세 벡터의 외적으로 구성된 삼중곱 $\vec u \times (\vec v \times \vec w)$을 벡터 삼중곱(Vector triple product)이라 하는데, 벡터 삼중곱은 다음과 같은 성질을 지닌다.
$$ \vec u \times (\vec v \times \vec w) = (\vec u \cdot \vec w) \cdot \vec v - (\vec u \cdot \vec v) \cdot \vec w $$
[식 - 1]
- 이를 삼중곱 전개(Triple product expansion) 또는 라그랑주 공식(Lagrange’s formula)이라 한다.
[식 -1] 의 좌변의 식의 최종 연산은 외적이므로 이의 결과는 벡터로 나온다. 이때 최종 벡터의 $x$성분만 먼저 전개해 보자.
먼저, $\vec v\times\vec w$의 외적을 계산하는 식은 아래와 같다.
$$ \vec{v} \times \vec{w} = (v_y w_z - w_y v_z,\; v_z w_x - w_z v_x,\; v_x w_y - w_x v_y) $$
여기서 외적의 $x$ 요소에는 $\vec u$ 벡터와 $(\vec v \times \vec w)$벡터의 y, z 성분만 사용된다. 이때 만들어지는 $x$성분을 전개해 보면,
$$ (\vec{u} \times (\vec{v} \times \vec{w}))_x = u_y (v_x w_y - w_x v_y) - (v_z w_x - w_z v_x) u_z \\= v_x (u_y w_y + u_z w_z) - w_x (u_y v_y + u_z v_z) \\ = v_x (u_y w_y + u_z w_z) - w_x (u_y v_y + u_z v_z) + v_x u_x w_x - v_x u_x w_x\\= v_x (u_x w_x + u_y w_y + u_z w_z) - w_x (u_x v_x + u_y v_y + u_z v_z) \\= v_x (\vec{u} \cdot \vec{w}) - w_x (\vec{u} \cdot \vec{v}) $$
나머지 2개의 성분도 동일한 방식으로 전개할 수 있으며, 이 결과를 정리하면 아래와 같다.
$$ (\vec{u} \times (\vec{v} \times \vec{w}))_y = v_y (\vec{u} \cdot \vec{w}) - w_y (\vec{u} \cdot \vec{v})\\ (\vec{u} \times (\vec{v} \times \vec{w}))_z = v_z (\vec{u} \cdot \vec{w}) - w_z (\vec{u} \cdot \vec{v}) $$
위 식을 종합하면 최종적으로 식-1 이 유도되는 것을 알 수 있다.

벡터 삼중곱은 다소 복잡한 외적을 두 개의 내적 연산으로 변환한다는 특징을 지닌다. 이 식의 우변은 결국 $a\vec v + b \vec w$와 같은 선형 결합식이므로, 벡터 삼중곱으로 만들어지는 벡터는, 두 벡터$(\vec v, \vec w)$가 만드는 평면에 속한다.
2차원 평면 위의 직교 벡터를 생성하는 벡터 삼중곱 연산

2차원 평면의 벡터 $\vec u$와 동일한 평면에 위치한 임의의 벡터 $\vec v$가 주어졌을 때, 동일 평면에서 벡터 $\vec u$와 직교하는 벡터는 $(\vec u \times \vec v)\times \vec u$의 벡터 삼중곱을 사용해 구할 수 있다.
'게임수학' 카테고리의 다른 글
| [게임수학] 9-2. 외적(2) - 카메라의 회전 행렬, 로드리게스 공식 (0) | 2025.11.11 |
|---|---|
| [게임수학] 9-1. 외적(Cross product) (0) | 2025.11.11 |
| [게임수학] 8-2. 오일러 각의 단점(짐벌락, 회전 보간) (0) | 2025.10.14 |
| [게임수학] 8-1. 오일러 각(Euler's angle) (0) | 2025.10.14 |
| [게임수학] 7. 게임 엔진 (0) | 2025.09.24 |