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

ベクトルの内積の特性

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

内積の計算式
$\vec{a} \cdot \vec{b} = |\vec{a}| |\vec{b}| cos(\theta)$

ベクトルの前後関係がわかる

内積の結果がプラスかマイナスかを見ることで、2つのベクトルの位置関係を調べることができます。

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

$\vec{a} \cdot \vec{b} > 0$ の場合 $\vec{b}$ は $\vec{a}$ の向いてる方にある。
$\vec{a} \cdot \vec{b} < 0$ の場合 $\vec{b}$ は $\vec{a}$ と逆向きの方にある。

理屈

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

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

$cos(\theta)$は0度から90度までと270度から360度の間の時はプラスの値になり、逆に90度~270度の間はマイナスです。

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

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

ベクトルが垂直かどうかわかる

$\vec{a} \cdot \vec{b} = 0$ の時、2つのベクトルは垂直です。

2つのベクトルが垂直ということは、2つのベクトルの間の角度が90度か270度ということです。

$cos(90)$も$cos(270)$も0なので、2つのベクトルが垂直の関係にあるとき、内積は必ず0になるという理屈です。

ベクトルが平行な時の内積

$ \vec{a} $ と $ \vec{b} $ が同じ向きで平行になっている時
$ \vec{a} \cdot \vec{b} = |\vec{a}| |\vec{b}|$ が成り立ちます。

$ \vec{a} $ と $ \vec{b} $ が逆向きで平行になっている時
$ \vec{a} \cdot \vec{b} = - |\vec{a}| |\vec{b}|$ が成り立ちます。

理屈

ベクトルが同じ向きで平行になっている場合、2つのベクトルの間の角度は0度です。

$cos(0)$ は 1 になるため
$ \vec{a} \cdot \vec{b} = |\vec{a}| |\vec{b}| cos(0) = |\vec{a}| |\vec{b}| 1 = |\vec{a}| |\vec{b}| $

ベクトルが逆向きで平行になっている場合、2つのベクトルの間の角度は180度です。

$cos(180)$ は -1 になるため
$ \vec{a} \cdot \vec{b} = |\vec{a}| |\vec{b}| cos(180) = |\vec{a}| |\vec{b}| -1 = -|\vec{a}| |\vec{b}| $

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

$ \vec{a} $ を正規化した状態で内積を計算すると、グラフ上の青い線の長さ($t$) を求める事ができます。

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

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

理屈

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

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