내적
…
특징
- 내적은 벡터의 차원에 관계 없이, 동일한 차원의 벡터끼리 가능하다.
- 내적의 결과는 스칼라 값이다.
- 벡터
A
,B
의 내적은A
를B
에(또는B
를A
에) 투영시킨 후 두 벡터의 길이를 곱한 것과 같다. - 내적은 교환 법칙, 결합 법칙이 성립한다.
주어진 벡터
\[\begin{flalign*} \quad A = (a_{x} \, , \,\, a_{y} \, , \,\, a_{z}) && \end{flalign*}\] \[\begin{flalign*} \quad B = (b_{x} \, , \,\, b_{y} \, , \,\, b_{z}) && \end{flalign*}\]내적 연산
\[\begin{flalign*} \quad A \cdot B = a_{x} \cdot b_{x} + a_{y} \cdot b_{y} + a_{z} \cdot b_{z} && \end{flalign*}\] \[\begin{flalign*} \quad \,\, A \cdot B = |A| |B| cos\theta && \end{flalign*}\]내적의 활용
[1] 두 벡터의 각도 관계 판별하기
…
- 두 벡터의 내적 결과가 0보다 크면 두 벡터가 이루는 각도는 예각이다.
- 두 벡터의 내적 결과가 0이면 두 벡터가 이루는 각도는 직각이다.
- 두 벡터의 내적 결과가 0보다 작으면 두 벡터가 이루는 각도는 둔각이다.
[2] 두 벡터의 사잇각 계산하기
…
\[\begin{flalign*} \quad A \cdot B = |A| |B| cos\theta && \end{flalign*}\] \[\begin{flalign*} \quad \therefore \theta = cos^{-1}(\frac{A \cdot B}{|A| |B|}) && \end{flalign*}\][3] 다른 벡터에 투영하기
…
\[\begin{flalign*} A' = |A| cos\theta \, \cdot \, \frac{B}{|B|} && \end{flalign*}\] \[\begin{flalign*} \quad = |A||B| cos\theta \, \cdot \, \frac{B}{|B|^{2}} && \end{flalign*}\] \[\begin{flalign*} \quad = \frac{A \cdot\ B}{|B|^{2}} B && \end{flalign*}\][4] 평면에 투영하기
…
V : 벡터
N : 평면의 법선 벡터(크기 1)
V’ : 법선 벡터(N)에 투영된 V 벡터
P : 평면에 투영된 V 벡터
벡터 V
를 법선 벡터 N
에 투영한다.
벡터 V
에서 V'
을 뺀다.
하나의 식으로 정리하면 다음과 같다.
\[\begin{flalign*} \qquad P = V - (V \cdot N) \, N && \end{flalign*}\]외적
…
특징
- 벡터의 외적은 3차원 벡터끼리만 가능하다.
- 외적의 결과는 벡터 값이다.
- 두 벡터를 외적한 결과는 두 벡터 모두에 수직인 벡터와 같다.
- 외적은 교환 법칙, 결합 법칙이 성립하지 않는다.
- 좌표계 종류(왼손, 오른손)에 따라 외적 결과 벡터의 방향이 달라진다.
주어진 벡터
\[\begin{flalign*} \quad A = (a_{x} \, , \,\, a_{y} \, , \,\, a_{z}) && \end{flalign*}\] \[\begin{flalign*} \quad B = (b_{x} \, , \,\, b_{y} \, , \,\, b_{z}) && \end{flalign*}\]외적 연산
\[\begin{flalign*} \quad A \times B = \begin{vmatrix} i & j & k \\ a_{x} & a_{y} & a_{z} \\ b_{x} & b_{y} & b_{z} \end{vmatrix} \\ && \end{flalign*}\] \[\begin{flalign*} \qquad \qquad = i \begin{vmatrix} a_{y} & a_{z} \\ b_{y} & b_{z} \end{vmatrix} - j \begin{vmatrix} a_{x} & a_{z} \\ b_{x} & b_{z} \end{vmatrix} + k \begin{vmatrix} a_{x} & a_{y} \\ b_{x} & b_{y} \end{vmatrix} \\ && \end{flalign*}\] \[\begin{flalign*} \qquad \quad = (a_{y} \cdot b_{z} - a_{z} \cdot b_{y} \, , \, \, a_{z} \cdot b_{x} - a_{x} \cdot b_{z} \, , \, \, a_{y} \cdot b_{z} - a_{z} \cdot b_{y})&& \end{flalign*}\]외적의 활용
[1] 두 벡터에 수직인 벡터 계산하기
…
두 벡터의 외적 결과는 두 벡터 모두에 수직인 벡터이며,
순서를 바꾸어 연산할 경우 반대 방향으로 수직인 벡터를 얻을 수 있다.
\[\begin{flalign*} \quad A \times B = -B \times A && \end{flalign*}\][2] 외적 결과 벡터의 길이 구하기
…
두 벡터 A
, B
를 외적한 벡터의 길이는 다음과 같이 계산할 수 있다.
[3] 평면의 법선 벡터 구하기
…
세 개의 점을 알고 있을 때,
세 개의 점 중 두 개를 지나는 서로 다른 벡터를 외적하여 평면의 법선 벡터를 손쉽게 구할 수 있다.
[4] 벡터의 좌우 관계 판별하기
…
F : 전방(Forward) 벡터
U : 상단(Up) 벡터
V : 좌우 관계를 판별할 벡터
k > 0
이면 벡터V
는 좌측을 향한다.k = 0
이면 벡터V
는 중앙을 향한다. (F
와U
가 이루는 평면에 포함된다.)k < 0
이면 벡터V
는 우측을 향한다.
[5] 오브젝트의 로컬 축 벡터 구성하기
…
v : 정규화되지 않은 전방 벡터(주어진 벡터)
Y : 월드 Y 벡터(주어진 벡터)
local Z
:v
벡터 정규화local X
: localZ × worldYlocal Y
: localZ × localX
[6] 삼각형의 내부, 외부 판별하기
…
벡터 AB
, BC
, CA
중 두 개의 벡터를 외적하여
점 A
, B
, C
가 이루는 평면의 법선 벡터 N
을 구한다.
위의 [3]
방법을 통해 판별하여,
점 P
가 벡터 AB
, BC
, CA
에 대해 각각 모두 좌측에 위치한 경우
점 P
는 삼각형 ABC
의 내부에 있다고 판단할 수 있다.
Note
실제로 사용하기에는 성능이 매우 떨어지므로,
아핀 조합에 의한 방정식
\[\begin{flalign*} \quad P = aA + bB + (1 - a - b)C && \end{flalign*}\]에 대해
a
, b
, a + b
가 모두 [0, 1]
범위 내에 있다면
점 P
는 삼각형 내부에 있는 것으로 판정하는 방법을 사용한다.
추가
…
[1] 벡터 삼중곱
- 라그랑주 공식 또는 백캡 규칙(BAC-CAB rule) 이라고도 한다.
- 외적은 결합법칙이 성립하지 않으므로
A×(B×C)
는(A×B)×C
와 다르다.
[2] 스칼라 삼중곱
- 스칼라 삼중곱의 절댓값을 통해 위 평행 육면체의 부피를 구할 수 있다.