JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

点积:长度与角度

一个小小的公式里,藏着向量的长度,也藏着两个向量之间的夹角。学会点积,把它的符号读成「对齐程度」,再从中还原出长度与角度。

公式,以及它的直觉

到目前为止,向量一直是可以相加和缩放的箭头。点积 是第一个能比较两个箭头、并返回一个数字告诉你它们有多指向同一方向的工具。配方很简单:对应坐标相乘,再全部加起来。

u = (3,4)   v = (1,2)
u dot v = 3*1 + 4*2 = 3 + 8 = 11
对应坐标相乘,然后相加。

点积是一个更一般想法的日常版本——内积,也就是任何把两个向量相乘成一个数的合理方式。对平面或空间里的普通箭头来说,「内积」和「点积」是同一回事。

读懂符号

最有用的一个习惯,是在看点积的大小之前先看它的符号。结果为正,表示两个向量朝同一边倾斜;结果为负,表示它们指向相反;而结果恰好为零,则表示它们成直角。

(1,0) dot (1,0) =  1   same direction  (+)
(1,0) dot (0,1) =  0   right angle     (0)
(1,0) dot (-1,0)= -1   opposite        (-)
先看符号:正为对齐,零为垂直,负为相反。

长度与角度由此得出

把一个向量和它自己做点积,会发生一件好事:交叉项消失,剩下的就是各坐标的平方和。这个和的平方根,就是向量的长度,也就是它的范数。这不过是披上新外衣的勾股定理。

v = (3,4)
v dot v = 3*3 + 4*4 = 9 + 16 = 25
norm(v) = sqrt(25) = 5
向量与自身的点积,等于其长度的平方。

长度和符号合起来,就是完整的几何定律:u dot v = norm(u) * norm(v) * cos(theta),其中 theta 是它们之间的夹角。把它反过来解,你就能仅凭坐标还原出夹角——根本不需要量角器。

  1. 计算 u dot v(对应坐标相乘后相加)。
  2. 用「与自身点积」的技巧算出 norm(u) 和 norm(v)。
  3. 于是 cos(theta) = (u dot v) / (norm(u) * norm(v));取反余弦即得 theta。