2つのベクトルのなす角 計算ツールとは?
このツールは、2次元または3次元空間における2つのベクトルの成分から、両者のなす角を計算します。計算にはベクトル代数で最も基本的な公式のひとつである「内積」の関係式を用います。物理学、コンピューターグラフィックス、機械学習、工学のいずれの分野でも、2つの方向がなす角を求めることはよくある重要な作業です。
使い方
ベクトルAとベクトルBそれぞれの x、y、z 成分を入力してください。2次元の問題を扱う場合は、z の欄を空欄のままにするか 0 を入力すればOKです。このツールは角度を「度数」と「ラジアン」の両方で表示し、さらに内積、各ベクトルの大きさ(ノルム)、角度の余弦(cos θ)も示すので、計算の過程をひとつずつ確認できます。
計算式の解説
なす角 \(\theta\) は次の式を満たします。
$$\theta = \arccos\left( \dfrac{\vec{a} \cdot \vec{b}}{\lVert \vec{a} \rVert \cdot \lVert \vec{b} \rVert} \right)$$
ここで内積は \(\vec{a} \cdot \vec{b} = a_x b_x + a_y b_y + a_z b_z\) で、各ベクトルの大きさは成分の2乗の和の平方根、すなわち \(\lVert \vec{a} \rVert = \sqrt{a_x^2 + a_y^2 + a_z^2}\) です。内積を2つの大きさの積で割ると \(\cos\theta\) が得られ、その逆余弦(arccos)をとることで角度が求まります。この角度は常に 0°〜180° の範囲に収まります。
計算例
\(a = (1, 0, 0)\)、\(b = (1, 1, 0)\) を考えてみましょう。内積は \(1 \cdot 1 + 0 \cdot 1 + 0 \cdot 0 = 1\) です。大きさは \(\lVert a \rVert = 1\)、\(\lVert b \rVert = \sqrt{2} \approx 1.4142\) となります。よって $$\cos\theta = \dfrac{1}{1 \times 1.4142} \approx 0.7071$$ となり、\(\theta = \arccos(0.7071) = 45°\) と求まります。
よくある質問(FAQ)
2Dベクトルでも使えますか? はい。z 成分を 0 のままにすれば、計算は平面の場合に自然に簡略化されます。
ベクトルがゼロベクトルの場合は? ゼロベクトルに対しては角度が定義できません。そのため、このツールではゼロ除算を避けるために 0 を返します。
なぜ結果は必ず 0〜180度の範囲になるのですか? arccos 関数が出力するのはその範囲の値のみだからです。これは2つのベクトルがなす、向きを問わない最小の角度を表しています。