1. 無職の学び舎
  2. >
  3. 無職はゲーム数学の勉強をする
  4. >
  5. ベクトルの外積の特性

ベクトルの外積の特性

ここにはベクトルの外積を使うとどんなことができるか、外積がどんな特性を持っているのかなどをまとめてみます。

外積の計算式
$\vec{a} \times \vec{b} = |\vec{a}| |\vec{b}| sin(\theta)$

ベクトルの左右の関係がわかる

外積の結果がプラスかマイナスかを見ることで、あるベクトルがあるベクトルの左にくるのか、それとも右にくるのかを調べる事ができます。

上のグラフでxとyをいじって$\vec{b}$を動かしてみて下さい。$\vec{b}$が青い領域にあるときは外積がプラス、赤い領域にあるときはマイナスになる事がわかると思います。

$\vec{a} \times \vec{b} > 0$ の場合 $\vec{b}$ は $\vec{a}$ の左側にある。
$\vec{a} \times \vec{b} < 0$ の場合 $\vec{b}$ は $\vec{a}$ の右側にある。

理屈

外積の計算式は $|\vec{a}| |\vec{b}| sin(\theta)$ です。

この計算の答えがプラスになるかマイナスになるかは$sin(\theta)$次第になります。

$sin(\theta)$は0度から180度の時にプラスの値になり、180~360度の間はマイナスです。

つまり、2つのベクトルの間の角度$\theta$が0~180度の間にある時
$sin(\theta)$の値はプラスになるので、外積はプラスになります。

反対に、ベクトルの間の角度が180~360度の時
$ sin(\theta) $ はマイナスになるので、外積の結果もマイナスになります。

ベクトルが平行かどうかわかる

$\vec{a} \times \vec{b} = 0$ の時、2つのベクトルは平行です。

2つのベクトルが平行ということは、2つのベクトルの間の角度が0度か180度ということです。

$sin(0)$も$sin(180)$も0なので、2つのベクトルが平行の関係にあるとき、外積は必ず0になるという理屈です。

ベクトルが垂直な時の外積

$ \vec{b} $ が $ \vec{a} $ の左側で垂直になっている時
$ \vec{a} \times \vec{b} = |\vec{a}| |\vec{b}|$ が成り立ちます。

$ \vec{b} $ が $ \vec{a} $ の右側で垂直になっている時
$ \vec{a} \times \vec{b} = - |\vec{a}| |\vec{b}|$ が成り立ちます。

理屈

$ \vec{b} $ が $ \vec{a} $ の左側で垂直になっている場合、2つのベクトルの間の角度は90度です。

$sin(90)$ は 1 になるため
$ \vec{a} \times \vec{b} = |\vec{a}| |\vec{b}| sin(0) = |\vec{a}| |\vec{b}| 1 = |\vec{a}| |\vec{b}| $

$ \vec{b} $ が $ \vec{a} $ の右側で垂直になっている場合、2つのベクトルの間の角度は270度です。

$sin(270)$ は -1 になるため
$ \vec{a} \times \vec{b} = |\vec{a}| |\vec{b}| sin(270) = |\vec{a}| |\vec{b}| -1 = -|\vec{a}| |\vec{b}| $

ベクトルを正規化して外積をとると

グラフ上の青い線の長さを$t$とします。

$ \vec{a} $ を正規化した状態で外積を計算すると、$t$ を求める事ができます。

青い線は $\vec{b}$ の位置から $\vec{a}$ の軸にまっすぐに落とした線で、長さは$\vec{a}$ を軸としてみた時の $\vec{b}$ の$y$成分になります。

また、$t$ は ${\vec{a}} $ の左側の場合はプラスになり、右側の場合はマイナスの値になります。

理屈

$ \vec{a} \times \vec{b} = | \vec{a} | | \vec{b} | sin(\theta) $
$ \vec{a} $ を正規化すると $ |\vec{a}| = 1 $ なので
$ = 1 |\vec{b}| sin(\theta)$
$ = |\vec{b}| sin(\theta)$
$ sin(\theta) $ は $ \frac {t} {|\vec{b}|} $ なので
$ = |\vec{b}| \frac {t} {|\vec{b}|} $
$ = t $

$ \vec{a} \times \vec{b} = t $ になりました。