이득우의 게임 수학
삼중곱은 벡터의 외적과 내적을 두 번 연속 사용하는 연산이다.
총 4개의 경우의 수가 있을 수 있다.
1. u·(v·w)
2. u·(v⨯w)
3. u⨯(v·w)
4. u⨯(v⨯w)
이 중에서 1번과 4번은 괄호 안의 결과가 스칼라가 되므로 두 번째 연산에서는 벡터 간의 연산이라고 볼 수 없다.
따라서, 2번과 4번만이 유효한 삼중곱이 된다.
이 중에서 최종 결과가 스칼라가 되는 2번은 특히 스칼라 삼중곱(Scalar triple product)이라고 한다.
- 외적을 통한 왼쪽/오론쯕 판별, 앞/뒷면 구분을 통한 백페이스 컬링에 사용된 공식이 모두 스칼라 삼중곱이다.
외적의 결과가 되는 법선 벡터의 크기는 두 벡터가 이루는 평행사변형의 넓이가 된다.
이때, 임의의 벡터 c를 a⨯b에 투영(Projection)한 벡터의 높이는 |c|cosθ가 된다.
여기에 평행사변형의 넓이 |a⨯b|를 곱하면, 평행육면체(Parallelepiped)의 부피가 된다.
이는 스칼라 삼중곱의 절댓값과 같다.
벡터 a, b, c가 만드는 평행육면체의 부피 = 스칼라 삼중곱의 절댓값
|c||a⨯b|cosθ = |c·(a⨯b)|
평행사변형을 구성하는 두 벡터를 다른 벡터로 변경해도 최종 평행육면체의 부피는 변하지 않으므로, 스칼라 삼중곱의 결과는 같다.
이런 성질을 가진 스칼라 삼중곱은 세 벡터의 선형 관계를 파악하는 데 사용된다.
외적의 결과인 법선 벡터 c의 크기는 c의 행렬식의 절댓값과 같다.
- |a⨯b| = |det(c)|
2차원에서 평행사변형을 이루는 두 벡터가 서로 선형 독립인지 판단하는 데 행렬식을 사용했듯이, 스칼라 삼중곱은 세 벡터가 모두 선형 독립인지 판별하는 판별식으로 생각할 수 있다.
삼중곱 u·(v⨯w)의 결과가 0인 경우는 다음과 같다.
- v와 w가 평행하다.
외적의 결과가 영벡터이기 때문이다. - v와 w가 이루는 평행사변형에 u가 속한다.
내적의 결과가 0이기 때문이다.
따라서, 스칼라 삼중곱 u·(v⨯w)의 결과가 0이 아니면, 세 벡터는 모두 선형 독립이다.
이번에는 4번 경우였던 u⨯(v⨯w)에 대해 생각해본다.
세 벡터의 외적으로 구성된 이 연산을 벡터 삼중곱(Vector triple product)이라고 한다.
벡터 삼중곱의 결과를 x성분에 대해서만 전개해보면 다음과 같다.
위처럼 내적으로만 이루어진 간단한 식으로 정리되고, 나머지 y, z성분에 대해서도 전개해보면 간단하게 정리된다.
최종적으로 벡터 삼중곱 u⨯(v⨯w)의 결과는 내적으로 구성된 간단한 식으로 정리되고, 이를 삼중곱 전개(Triple product expansion) 또는 라그랑주 공식(Lagrange's formula)이라고 한다.
벡터 삼중곱은 복잡한 외적을 두 개의 내적 연산으로 변환한다는 특징이 있다.
이 식은 결국 아래와 같은 형태의 선형 결합식이므로, 벡터 삼중곱의 결과는 벡터 v와 w가 만드는 평행사변형에 속함을 알 수 있다.
벡터 삼중곱은 위 성질을 이용해 2차원 공간의 문제를 푸는 데도 활용될 수 있다.
벡터 B와 C가 만드는 평면에서 (B⨯C)⨯B의 결과는, BC 평면 위에 존재하는 B에 수직인 벡터가 된다.
'게임 수학 > 이득우의 게임 수학' 카테고리의 다른 글
동차 좌표계 (0) | 2023.05.14 |
---|---|
원근 투영 변환의 원리 (2) | 2023.05.13 |
로드리게스 회전 공식 (0) | 2023.05.11 |
백페이스 컬링(Backface Culling) (0) | 2023.05.10 |
외적(Cross product) (0) | 2023.05.09 |