在二维平面上,我们最常见的就是那个由两个向量张出来的小矩形,如何算它的“面积”要么“角度”呢?实际上核心就在那一瞬间,一个数乘上另一个数,然后乘个符号,就是那个漂亮的叉乘公式:$|vec{a} times vec{b}| = |vec{a}| |vec{b}| sin(theta)$。别被那套繁文缛节劝退,就把它看作是用一个向量的长度乘以另一个向量的高。想象你手里拿着两把尺子,一把长 $|vec{a}|$,一把长 $|vec{b}|$,夹角是 $theta$,那你当作面积就是两把尺子相乘?不对,这有个庞大的坑,你得看它们是不是歪着放。
要是它们正挤在一起,$theta$ 接近 $0$,面积就得趋近于 $0$,这时候 $sin(theta)$ 就变成了 $0$,公式完美自洽。
要是它们彻底背道而驰,$theta$ 接近 $180$度,面积也得变成 $0$,出于这时候它们实际上重叠了,也没有用处。
只有当你歪着点,$theta$ 在 $0$ 到 $90$ 度之间,那个 $sin(theta)$ 才有值,形成意义。 这个公式的本质,实际上是定义了一个新的方向。二维向量本身没啥向量可乘,但你能够把它看作是有向线段,叉乘算出来的是一个“垂直于这两个向量的新向量”。
这个新向量的长度就是实际上体积,方向是右手定则拍板的。大量人一启动会困惑,为啥有时候算出来是负数?比如两个方向反之的向量,叉乘结局带个负号,但面积大小是恒正的,这实际上是方向信息被取出来了。在物理世界里,这个值时常代表力矩或散度,都是讲“扭曲”或“扩散”的量。 举个最直观的例子,想象你在操场上画两个箭头。
第一个箭头指北,第二个箭头指向东北。你先把它们叠在一起,你会看到一个直角三角形,底边是第一个向量的长度,高是第二个向量在垂直方向上的分量。
那面积就是底乘以高。数学上就是 $|vec{a}| times |vec{b} sin(alpha)|$。
要是你要算两个彻底一样的箭头夹角 $60$ 度,叉乘结局你会是正数还是负数取决于你定哪条线为基准,但这不影响它们张成的三角形面积。
这时候你就知道,叉乘的数值大小跟绝对值成正比,跟角度相关。 再换个场景,比如房子/屋结构工程师在做二维受力分析。他手握两个力矢量,一个推力,一个拉力。他如何算这两个力形成的力偶矩?直接用标量乘法乘以另一个力的大小?不,那是错的。出于力也是矢量,得看它们的方向。
要是你用叉乘公式算出来是正 $100$,用向量积算出来有个垂直于纸面的分量,那是 $+100 times 1 times sintheta$。
这里的 $vec{a} times vec{b}$ 实际上就是一个具体的向量,它的大小代表了力臂长度乘以力的大小。
要是两个力互相垂直,$sintheta=1$,结局最大,就是 $|vec{a}| |vec{b}|$,这也是矩形面积的最大值。
要是两个力彻底平行,$sintheta=0$,结局就是 $0$,说明它们形成的转动效果为零,就像两个力一起推墙,墙纹丝不动。 有时候你会认定这个公式忒抽象,出于它展开就是 $x_1 y_2 - x_2 y_1$。别被这个代数式吓倒,那只是几何直觉的线性表达。
要是你有两个向量 $vec{a} = (3, 0)$ 和 $vec{b} = (4, 2)$,按照公式算:$3 times 2 - 4 times 0 = 6$。
这就意味着这两个向量张成的三角形面积是 $6$ 乘以单位长度的一半,也就是 $3$。
什么的,这里有个常见误区,二维叉乘算出来的是标量,但它的物理意义是垂直于纸面的长度。
要是你把它们画成坐标轴上的箭头,那个 $6$ 实际上就是垂直方向上那段线段。
要是你想知道这两个箭头围成的实际三角形面积,得除以 $2$。
这体现了二维叉乘和三维向量叉乘的区别。三维里 $vec{a} times vec{b}$ 是个向量,体积是 $|vec{a} times vec{b} cdot vec{c}|$。二维里别看逻辑一样,但结局直接就是那个数值,不需求再点乘第三个向量来求体积。 在实际应用里,这个公式时常出目前计算机图形学和机器人管住里。
比如你在玩那种俯视角的飞行模拟器,屏幕上的两个管住指令分别代表两个方向。飞船绕着某个点移动,算出的那个“角速度”要么“旋转影响因子”,实际上就是这两个指令的叉乘。
要是两个指令忒像,叉乘结局小,说明转了慢;要是两个指令方向简直反之,叉乘结局大,说明转得猛。
这种直观的映射,让程序员不用写一堆复杂的三叉积运算,就能省事处理二维的轴向变化。 自然,这个公式在计算上有小缺点。它是个标量,丢失了方向信息。
比如你想知道哪个是哪个,要么正负代表啥方向,就得依赖你是在右手坐标系还是左手坐标系,要么你是在旋转那个结局。在纯数学推导里,这没关系,反正我们都关心的是那个“扭曲量”。但在编程或工程里,有时候你不想丢掉方向,这时候就得小心了。
要是你用 $vec{a} times vec{b}$ 拿到 $10$,你得知道这个 $10$ 对应的垂直向量是指哪边的。
要是是左手系,可能得取负号;要是是右手系,直接就是正的。
这也害得大量人为了省事,宁愿用行列式算出的带符号结局,而不是追求那个绝对值形式。
毕竟,要是两个向量长度一样,夹角一样,但叉乘结局符号反之,那你用的面积公式就得重新判断方向,这多费事啊。 故此,回到原点。二维叉乘公式 $|vec{a} times vec{b}| = |vec{a}| |vec{b}| sin(theta)$ 并不复杂,它就是在教你一种“看角度算面积”的方式。它告诉我们,只要保证那两个向量不重叠(不平行),就能用一个数代表它们张开的程度。
那个数越大,开得多;那个数越小,开得越平。
有时候你就连能够说,这个公式就是平面几何里“有向面积”的另一种称呼,只是没人愿意把它写成 $1/2 times |vec{a} times vec{b}|$ 这种带绝对值的形式,认定忒啰嗦。
反正核心道理就在那儿:不要算复杂,用好办的长度和高相乘,记个正负号,思路就通了。至于如何记正负,就靠你手里那把尺子的摆放方向来定,别把自己绕晕了。