Make Unreal REAL.
article thumbnail
이득우의 게임 수학

 

삼중곱은 벡터의 외적과 내적을 두 번 연속 사용하는 연산이다.

 

총 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
원근 투영 변환의 원리  (0) 2023.05.13
로드리게스 회전 공식  (0) 2023.05.11
백페이스 컬링(Backface Culling)  (0) 2023.05.10
외적(Cross product)  (0) 2023.05.09
profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그