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

2Dベクトルの外積の計算方法

2つのベクトル $\vec{v1}$ と $\vec{v2}$ があるとして、ベクトルの外積は以下のように書く。

$\vec{v1} \times \vec{v2}$

とりあえずこの式を見たら、あぁ、ベクトルの外積だなと思えばいいと思う。

外積の活用例

外積の計算

外積の計算方法は1つではないので、それぞれについて見ていく。

計算方法 その1

$\vec{v1} \times \vec{v2} = |\vec{v1}||\vec{v2}|sin(\theta)$

2つのベクトルの長さと$\sin(\theta)$をかけて求める方法。
$\theta$は2つのベクトルの間の角度。

計算方法 その2

$\vec{v1} \times \vec{v2} = ad - bc$

2つのベクトルの成分をかけたり引いたりして求める方法。

ベクトルのXY成分さえわかっていればちょっとした掛け算と足し算で計算できてしまうので、こっちで計算できるならこっちの計算式で求めてしまうのがいいだろう。

$ad - bc$で本当に求まる?

$\vec{v1} \times \vec{v2} = |\vec{v1}||\vec{v2}|sin(\theta) = ad - bc$

真ん中の複雑そうな式が、右側の簡単な式になっちゃうというのはにわかに信じがたいのだが、これが正しいという事を証明していこう。

$\sin(\theta)$の捉え方を変える

$sin(\theta)$ = $sin(\alpha - \beta)$ と書くことができる。

$\alpha$が80度で$\beta$が30度だったら、$\theta$は(80 - 30)で50度という単純な話。

三角関数の加法定理というのものがありまして

こんな公式があったりする。

$sin(\alpha - \beta) = sin\alpha \ cos\beta - cos\alpha \ sin\beta $

この公式を使うとベクトルの外積は以下のように計算式を変形できる。

$\vec{v1} \times \vec{v2}$
$= |\vec{v1}||\vec{v2}|sin(\theta)$
$= |\vec{v1}||\vec{v2}|sin(\alpha - \beta)$
$= |\vec{v1}||\vec{v2}|(sin\alpha \ cos\beta - cos\alpha \ sin\beta) $

整理するとこうなる

$\vec{v1} \times \vec{v2} = |\vec{v1}||\vec{v2}|(sin\alpha \ cos\beta - cos\alpha \ sin\beta) $

計算がんばる

$(sin\alpha \ cos\beta - cos\alpha \ sin\beta) $ の部分を先に計算してみる

$(sin\alpha \ cos\beta - cos\alpha \ sin\beta) $
$= \frac{d}{|\vec{v2}|} \frac{a}{|\vec{v1}|} - \frac{c}{|\vec{v2}|} \frac{b}{|\vec{v1}|}$
$= \frac{ad - bc}{|\vec{v1}||\vec{v2}|}$

整理すると

$(sin\alpha \ cos\beta - cos\alpha \ sin\beta) = \frac{ad - bc}{|\vec{v1}||\vec{v2}|}$

もとの計算式にあてはめてみる

$\vec{v1} \times \vec{v2} $ $ = |\vec{v1}||\vec{v2}|(sin\alpha \ cos\beta - cos\alpha \ sin\beta)$
$ = |\vec{v1}||\vec{v2}| \frac{ad - bc}{|\vec{v1}||\vec{v2}|}$
$ = ad - bc$

$\vec{v1} \times \vec{v2} = ad - bc$

求めている結果が得られました!
これにて証明は終了です。