两个向量之间的角度计算器 - 2D 和 3D

使用点积公式查找 2D 或 3D 空间中任意两个向量之间的角度。结果以度数和弧度表示。

选择 2D 或 3D 模式,输入两个向量的分量,然后单击计算以获取角度、点积和向量幅度。

两个向量之间的角度计算器 - 2D 和 3D
使用点积公式查找 2D 或 3D 空间中任意两个向量之间的角度。结果以度数和弧度表示。

关于两个向量之间的角度计算器

两个向量之间的角度是线性代数和几何中的基本量,它表示两个尾对尾放置在公共原点的方向量之间的角度间隔。与经典欧几里得几何中的线之间的角度不同,向量之间的角度始终是两个可能角度中较小的一个,限制在从 0° 到 180° (或 0 到 π 弧度)的范围内。此约定确保任何非零向量对都有唯一的、明确的结果。 计算基于点积,这是线性代数中最重要的运算之一。对于两个向量 A 和 B,点积在代数上定义为它们相应分量的乘积之和:二维中的 A · B = Ax·Bx + Ay·By,或三维中的 A · B = Ax·Bx + Ay·By + Az·Bz。点积还具有几何解释:A · B = |A| × |B| × cos(θ),其中 |A| 和 |B| 是向量的欧几里德大小(长度),θ 是它们之间的角度。结合这两个定义并求解 θ 给出基本公式:θ = arccos((A · B) / (|A| × |B|))。 这个公式有几个优雅的特性。如果点积为零,则 cos(θ) = 0,即 θ = 90°,向量垂直(正交)。如果点积等于幅值的乘积,则 cos(θ) = 1 和 θ = 0°,意味着向量指向同一方向(平行)。如果点积等于幅值的负积,则 cos(θ) = −1 和 θ = 180°,这意味着向量指向相反的方向(反平行)。只需扩展分量和,该公式就可以自然地推广到 n 维空间。 矢量之间的角度在整个物理学和工程学中都会出现。在经典力学中,力 F 对位移 d 所做的功为 W = F · d = |F| × |d| × cos(θ),其中 θ 是力向量和位移向量之间的角度。当 θ = 0° 时,力与运动完全一致并做最大功;当 θ = 90° 时,力垂直于运动并且做零功。在计算机图形学中,表面照明使用表面法线与入射光方向之间的角度,通过兰伯特余弦定律计算表面的照明亮度。在机器学习中,两个特征向量之间的余弦相似度与它们之间的角度直接相关,并衡量它们的方向的相似程度,而不管大小。 在数值上,当 arccos 函数的参数非常接近 1 or −1 (对应于几乎平行或反平行向量)时, arccos 函数可能会失去精度。在高精度软件中,这是通过将余弦参数限制在有效范围 [−1, 1] 之前将其传递给 arccos 来处理的,该计算器会自动执行此操作。对于需要有符号角度(区分顺时针和逆时针)的 2D 问题,带有叉积的 atan2 函数优于点积方法,尽管此计算器报告的无符号角度与数学定义一致。

向量之间的角度示例

经典向量对展示了垂直、平行和一般角度结果。

向量角度解释
A=( 1,0), B=( 0,1)90°沿 x 轴和 y 轴的垂直单位向量。点积 = 0,说明两者构成直角。
A=( 3,4), B=( 4,3)≈16.26°两个向量的模均为 5。点积 = 3×4 + 4×3 = 24。cos(θ) = 24/25 = 0.96。
A=( 1,0,0), B=( 0,1,0)90°3D 空间中的正交单位向量。点积 = 0,因此夹角恰好为 90°。
A=( 1,1,1), B=( 1,0,0)≈54.74°3D 向量。点积 = 1,|A| = √3,|B| = 1。cos(θ) = 1/√3 ≈ 0.577。

如何使用两个向量之间的角度计算器

  1. 选择维度:向量只有 x 和 y 分量时选择“2D 向量”;还有 z 分量时选择“3D 向量”。
  2. 输入矢量 A(Ax、Ay 和可选的 Az)和矢量 B(Bx、By 和可选的 Bz)的分量值。根据需要使用小数或负数。
  3. 单击“计算角度”。计算器立即显示以度和弧度为单位的角度,以及点积、矢量幅度和余弦值。
  4. 使用已知的特殊情况验证结果:垂直向量始终给出 90°,相同方向向量始终给出 0°,相反方向始终给出 180°。
  5. 单击重置可清除所有输入并执行新的计算。

矢量之间的角度常见问题解答

为什么向量之间的角度总是在 0° 和 180° 之间?
公式中使用的 arccos 函数的范围为 [0°, 180°],该范围内任意角度的余弦值都在 [−1, 1] 中。点积公式仅给出两个向量可以形成的两个补角中较小的一个,按照惯例,该角是向量之间的角度。如果需要有向(有符号)角,则使用 atan2 函数与叉积相结合。
角度的点积为零意味着什么?
点积为零意味着角度的余弦为零,这恰好对应于 90° 的角度。这两个向量是正交(垂直)的。此属性广泛用于测试垂直度:如果 A · B = 0 则 A ⊥ B,无需计算实际角度。
矢量的大小(长度)会影响角度吗?
不会。该公式将点积除以幅值的乘积,因此向上或向下缩放矢量会抵消并且不会更改角度。向量 (1,0) 和 (100,0) 都与 x 轴形成 0° 角度,无论其长度如何。
如何将其扩展到 n 维向量?
公式 θ = arccos((A · B) / (|A| × |B|)) 适用于任意数量的维度。扩展点积以求所有 n 个分量积的总和:A · B = Σ Ai·Bi。震级为 |A| = √(Σ Ai²)。自然语言处理和机器学习中使用的余弦相似度正是应用于高维单词或文档向量的比率。
如果一个向量为零向量会发生什么?
零向量具有大小 0,因此分母 (|A| × |B|) 变为 0 并且角度未定义 - 不能除以零。从几何角度来看,零向量没有方向,因此没有可计算的有意义的角度。计算器会检测到这种情况并在尝试计算之前报告错误。
这个角度如何用于 3D 图形中的光照计算?
在 Phong 和 Lambert 光照模型中,表面亮度与 cos(θ) 成正比,其中 θ 是表面法线向量 N 与入射光方向向量 L 之间的角度。当光线正面照射到表面时((θ = 0°),cos(θ) = 1 并且表面处于全亮度。当光线掠过表面 (θ → 90°)、cos(θ) → 0 并且表面处于阴影中。负余弦值 (θ > 90°)被钳位为零,以避免负光贡献。