这个计算器能做什么
本工具利用点积,计算二维或三维空间中两个向量之间的夹角。只需输入向量 a 与向量 b 的各个分量,即可同时得到以度数和弧度表示的夹角,以及点积、两个向量各自的模长和夹角的余弦值。无论是纯数学运算、物理与工程计算、计算机图形学,还是机器学习中的相似度问题,都能派上用场。
使用方法
分别填入两个向量的 x、y 分量(z 分量可选)。如果是二维向量,只要把 z 字段留空或填 0 即可。点击"计算"就能看到夹角。返回的夹角始终介于 0° 到 180° 之间,即两个方向之间最小的几何夹角。
公式详解
点积与夹角的关系为 \(a \cdot b = |a||b|\cos\theta\)。对 \(\theta\) 求解可得
$$\theta = \arccos\!\left( \frac{a \cdot b}{|a||b|} \right)$$点积按分量逐一相乘再相加:
$$a \cdot b = a_x b_x + a_y b_y + a_z b_z$$每个向量的模长等于各分量平方和的平方根:
$$|a| = \sqrt{a_x^2 + a_y^2 + a_z^2}$$为避免舍入误差,在取反余弦之前会先把相除的结果限制在 \([-1, 1]\) 范围内。
实例演算
设 \(a = (1, 0, 0)\),\(b = (1, 1, 0)\)。点积为
$$1 \cdot 1 + 0 \cdot 1 + 0 \cdot 0 = 1$$模长分别为 \(|a| = 1\),\(|b| = \sqrt{2} \approx 1.4142\)。因此
$$\cos\theta = \frac{1}{1 \times 1.4142} \approx 0.7071$$得 \(\theta = \arccos(0.7071) = 45°\),约合 \(0.7854\) 弧度。
解释您的结果
计算器返回的角度 \(\theta\) 描述了两个向量相对于彼此的方向,与它们的长度无关。\(\cos\theta\) 的符号和大小一眼就能告诉您几何关系。
- \(\theta = 0^\circ\) (\(\cos\theta = 1\)) — 平行 / 同方向。 向量指向完全相同的方向;其中一个是另一个的正标量倍数。
- \(0^\circ < \theta < 90^\circ\) (\(\cos\theta > 0\)) — 锐角。 点积为正,向量指向大致相似的方向。
- \(\theta = 90^\circ\) (\(\cos\theta = 0\)) — 正交(垂直)。 点积恰好为零。这是垂直性的定义性检验。
- \(90^\circ < \theta < 180^\circ\) (\(\cos\theta < 0\)) — 钝角。 点积为负;向量指向大致相反的方向。
- \(\theta = 180^\circ\) (\(\cos\theta = -1\)) — 反平行 / 相反方向。 一个向量是另一个的负标量倍数。
在机器学习和文本分析中,量 \(\cos\theta\) 本身称为 余弦相似度。直接解释:值 1 表示方向相同(最相似),0 表示正交/无关,−1 表示相反。因为它忽略了大小,两个具有相同方向但不同长度的文档或嵌入会得分相同。角度和相似度包含相同的信息 — 角度只是相似度的 \(\arccos\)。
常见角度参考值
这些标准角度及其精确余弦值对于检查结果和识别常见方向很有用。角度由 \(\theta = \arccos(\cos\theta)\) 求得。
| 角度(度) | 角度(弧度) | \(\cos\theta\) | 关系 |
|---|---|---|---|
| 0° | \(0\) | 1.0000 | 平行(同方向) |
| 30° | \(\pi/6\) | 0.8660 | 锐角 |
| 45° | \(\pi/4\) | 0.7071 | 锐角 |
| 60° | \(\pi/3\) | 0.5000 | 锐角 |
| 90° | \(\pi/2\) | 0.0000 | 正交(垂直) |
| 120° | \(2\pi/3\) | −0.5000 | 钝角 |
| 135° | \(3\pi/4\) | −0.7071 | 钝角 |
| 150° | \(5\pi/6\) | −0.8660 | 钝角 |
| 180° | \(\pi\) | −1.0000 | 反平行(相反) |
要将十进制度数结果(如 60°)转换为度、分和秒,您可以使用 60° 转换。
常见问题
可以用于二维向量吗? 可以——把 z 分量填成 0,公式就会自动退化为二维情形。
为什么夹角永远不会超过 180°? 反余弦函数的取值范围是 0 到 \(\pi\)(180°),它表示两个方向之间最小的夹角,与朝向无关。
如果某个向量是零向量怎么办? 零向量没有方向,夹角无法定义;为避免除以零,当某个向量的模长为 0 时,本计算器会返回 0°。