外積の性質について【AtCoder】

概要

atcoder.jp

上記の問題に対する解説の中で外積の性質について記述されていたので、もう少し調べてみた。

atcoder.jp

外積の公式

 \vec{a} \times \vec{b} = |\vec{a}||\vec{b}|\sin(\theta)

 \vec{a} \times \vec{b} について

 a = (a_1, a_2, a_3), b=(b_1, b_2, b_3) のとき  \vec{a} \times \vec{b} = (a_2 \times b_3 - a_3 \times b_2, a_3 \times b_1 - a_1 \times b_3, a_1 \times b_2 - a_2 \times b_1)
で表される。
ここで、概要で紹介されている問題に当てはめると、
 a = (a_1, a_2, 0), b=(b_1, b_2, 0)になるので、
 \vec{a} \times \vec{b} = a_1 \times b_2 - a_2 \times b_1 の式になる。

解説の意味

 a_1 \times b_2 - a_2 \times b_1 > 0 になるときは
0 \lt \sin(\theta) \leqq 1 のときになるので、 0^{\circ} \lt \theta \leqq 180^{\circ}
 a_1 \times b_2 - a_2 \times b_1 \leqq 0 になるときは
 -1 \leqq \sin(\theta) \leqq 0のときになるので、 180^{\circ} \leqq \theta \leqq 360^{\circ}
問題の場合、 \angle ABC 180^{\circ} より大きいか小さいか判断する必要になるので、
上記により a_1 \times b_2 - a_2 \times b_1が0より大きいか小さいか確認する必要があるということ。