© 2015-2020 Jacob Ström, Kalle Åström, and Tomas Akenine-Möller

正在加载并构建本章……

第 4 章:叉积





4.1 引言


$\vc{n}$
$\vc{l}$
$\theta$
对于完全漫反射(即无光泽)的表面,无论从哪个方向观察,其表观亮度都相同。这意味着到达接收表面的光子在表面被瞬间吸收,然后向任意方向射出。这通常用 Lambert 定律来建模,该定律指出出射强度与接收点处的法向量和从接收点指向光源位置的向量之间夹角的余弦成正比。右图展示了这种情况,其中法向量为 $\vc{n}$,指向光源(黄色圆圈)的向量为 $\vc{l}$。Lambert 定律指出,"离开表面的亮度"正比于
\begin{equation} \cos \theta, \end{equation} (4.1)
可以表示为
\begin{equation} \cos \theta = \vc{n} \cdot \vc{l} \end{equation} (4.2)
前提是 $\ln{\vc{n}}=1$ 且 $\ln{\vc{l}}=1$,即它们已归一化。粗略地说,这意味着如果光源方向 $\vc{l}$ 与法向量 $\vc{n}$ 完全对齐,则亮度最大。然而,当 $\vc{l}$ 与 $\vc{n}$ 之间的角度增大时,亮度会降低。

Lambert 定律可用于计算三维物体上非常简单的着色。光源可以放在任意位置,从而用来计算 $\vc{l}$。但还需要法向量 $\vc{n}$。假设三维物体由三角形组成。我们在第 3 章中已经看到,直线的"法向量"可以计算得到,也看到了从平面方程中也能推导出平面法向量。但本章介绍一种计算法向量的更简便工具——叉积。它有时也称为叉积(cross product)。由三角形构成的三维物体的一个例子见交互图 4.2
交互图 4.2: 一个圆环面的连续模型被转换(即网格化)为由四边形组成的表示,其中每个四边形由两个三角形构成。请注意,相机视角可以通过点击鼠标右键或在 iPad 上双指按压来改变。你会看到着色会随之变化。
交互图 4.2: 一个圆环面的连续模型被转换(即网格化)为由四边形组成的表示,其中每个四边形由两个三角形构成。请注意,相机视角可以通过点击鼠标右键或在 iPad 上双指按压来改变。你会看到着色会随之变化。
4.2 定向


为了介绍叉积,我们首先需要定义定向(orientation)和“手性(handedness)”。原因是两个向量 $\vc{u}$ 和 $\vc{v}$ 的叉积与 $\vc{u}$ 和 $\vc{v}$ 都正交。然而,叉积还有一个自由度,即它可以指向与 $\vc{u}$ 和 $\vc{v}$ 都正交的某个方向,也可以指向相反方向。我们先从二维——即平面中的定向开始介绍。如右图所示,正定向定义为逆时针方向,而负定向定义为顺时针定向。这与角度的定义类似,读者可能已经熟悉:正角 $\alpha$ 从 $x$ 轴出发逆时针旋转,而负角则顺时针旋转,如图 4.3 的第二步所示。

$\vc{u}$
$\vc{v}$
定向的概念也可以应用于平面中的向量。如果 $\vc{u}$ 可以沿正定向(见图 4.3)旋转使最小角 $[\vc{u},\vc{v}]$ 变为零,则两个向量 $\vc{u}$ 和 $\vc{v}$ 构成正定向。注意图 4.4 中的向量可以移动,读者可以通过观察底部文字来看定向何时改变。注意,若 $\vc{u}$ 和 $\vc{v}$ 是正定向的,则 $\vc{v}$ 和 $\vc{u}$ 必为负定向的,反之亦然。此外,若 $\vc{u}$ 和 $\vc{v}$ 平行,则它们只是平行的,既不是正定向也不是负定向的。

接下来,定向的概念被推广到更高维度,例如三维向量的定向。为此需要三个向量,设为 $\vc{u}$、$\vc{v}$ 和 $\vc{w}$。与二维定向类似,向量的顺序很重要。假设 $\vc{u}$、$\vc{v}$ 和 $\vc{w}$ 都从一个公共原点出发。如果你想象自己坐在 $\vc{w}$ 的头点,朝原点看去,且从该位置看 $\vc{u}$ 和 $\vc{v}$ 是正定向的,则向量 $\vc{u}$、$\vc{v}$ 和 $\vc{w}$ 称为定向的。定向的情况类似,只是从该位置看 $\vc{u}$ 和 $\vc{v}$ 必须是负定向的。这在图 4.5 中展示。
交互图 4.5: 三维中的定向。左侧,向量 $\vc{u}$、$\vc{v}$ 和 $\vc{w}$ 是负定向的;右侧,向量是正定向的。如果你想象自己在 $\vc{w}$ 向量的头点,朝 $\vc{u}$、$\vc{v}$ 和 $\vc{w}$ 的公共原点看去,当从该位置看 $\vc{u}$ 和 $\vc{v}$ 是正定向时,这组向量就是正定向的。
交互图 4.5: 三维中的定向。左侧,向量 $\hid{\vc{u}}$、$\hid{\vc{v}}$ 和 $\hid{\vc{w}}$ 是负定向的;右侧,向量是正定向的。如果你想象自己在 $\hid{\vc{w}}$ 向量的头点,朝 $\hid{\vc{u}}$、$\hid{\vc{v}}$ 和 $\hid{\vc{w}}$ 的公共原点看去,当从该位置看 $\hid{\vc{u}}$ 和 $\hid{\vc{v}}$ 是正定向时,这组向量就是正定向的。
$\vc{u}$
$\vc{v}$
$\vc{w}$
$\vc{u}$
$\vc{v}$
$\vc{w}$
$\vc{u}$
$\vc{v}$
$\vc{w}$
定向的向量组也称为右手,而负定向的向量组称为左手图 4.6 展示了一个右手系,从中可以清楚地看到为什么它被称为右手系:用右手的手指就可以轻松构造出这样一个系统。想象拇指是第一个向量($\vc{u}$),食指是第二个向量($\vc{v}$),中指是第三个向量($\vc{w}$)。相反,负定向的系统可以用左手以完全相同的方式构造。

在本书的其余部分,我们将主要使用右手系。此外,回忆一下主轴的定义为
\begin{align} \vc{e}_x &= (1,0,0), \\ \vc{e}_y &= (0,1,0), \\ \vc{e}_z &= (0,0,1). \end{align} (4.3)
观察图 4.5 的右半部分,可以看到 $\vc{e}_x$、$\vc{e}_y$ 和 $\vc{e}_z$ 可以分别替换为 $\vc{u}$、$\vc{v}$ 和 $\vc{w}$。因此,$\vc{e}_x$、$\vc{e}_y$ 和 $\vc{e}_z$ 构成一个右手系。通过观察图示还可以看出,可以对向量进行循环移位,同时保持右手系不变。因此,以下三个系统都是右手系,
\begin{align} &\vc{e}_x, \vc{e}_y, \vc{e}_z \\ & \,\,\,\,\,\swarrow \swarrow \\ &\vc{e}_y, \vc{e}_z, \vc{e}_x \\ & \,\,\,\,\,\swarrow \swarrow \\ &\vc{e}_z, \vc{e}_x, \vc{e}_y, \\ \end{align} (4.4)
其中箭头只是展示了从一行到下一行的左移操作。注意,从左端移出的轴出现在最右侧位置。所有其他排列(共三种)都是负定向的,即构成左手系。

4.3 叉积的定义


在本章中,我们将先给出叉积的定义,然后再看它有什么用途。

定义 4.1: 叉积
两个三维向量 $\vc{u}$ 和 $\vc{v}$ 的叉积定义为一个新向量,记作 $\vc{u} \times \vc{v}$,具有以下性质:

(1) $\vc{u} \times \vc{v}$ 与 $\vc{u}$ 和 $\vc{v}$ 都正交
(2) $\ln{\vc{u} \times \vc{v}}= \ln{\vc{u}}\,\ln{\vc{v}} \sin [\vc{u},\vc{v}]$。
(3) 向量 $\vc{u}$、$\vc{v}$ 和 $\vc{u} \times \vc{v}$ 构成正定向

由 (2) 可知,若 $\vc{u}=\vc{0}$ 或 $\vc{v}=\vc{0}$,则叉积为 $\vc{0}$,因为长度为 0 的向量必为 $\vc{0}$ 向量。类似地,由 (2) 可知,若 $[\vc{u},\vc{v}]=0$ 则叉积为 $\vc{0}$。此外,由于 $[\vc{u},\vc{u}]=0$,可得 $\vc{u} \times \vc{u}=\vc{0}$。
$\vc{u}$
$\vc{v}$
$\ln{\vc{u}}$
$\ln{\vc{v}}$
$\ln{\vc{v}} \sin [\vc{u},\vc{v}]$
$[\vc{u},\vc{v}]$
注意到目前为止叉积的定义是比较抽象的。很快我们将看到它有许多重要用途。不过,首先注意叉积长度 $\ln{\vc{u} \times \vc{v}}=$ $\ln{\vc{u}}\,\ln{\vc{v}} \sin [\vc{u},\vc{v}]$ 可以从几何角度理解。如右图所示,$\ln{\vc{v}} \sin [\vc{u},\vc{v}]$ 是由 $\vc{u}$ 和 $\vc{v}$ 构成的三角形的高的长度,同时也是由 $\vc{u}$ 和 $\vc{v}$ 张成的平行四边形的高。平行四边形的面积 $a$ 为 $a = bh$,其中 $b$ 是底,$h$ 是高。这可以用向量 $\vc{u}$ 和 $\vc{v}$ 来表示,即
\begin{equation} a = bh = \ln{\vc{u}}\, \ln{\vc{v}} \sin [\vc{u},\vc{v}]. \end{equation} (4.5)
因此可以看到,平行四边形的面积就是叉积长度,即
\begin{equation} a = \ln{\vc{u} \times \vc{v}}. \end{equation} (4.6)
注意,由 $\vc{u}$ 和 $\vc{v}$ 张成的三角形的面积,就是该平行四边形面积的一半。事实上,我们在例 3.7 中已经见过这一点。

叉积交互图 4.8
交互图 4.8: 本交互图展示两个向量 $\vc{u}$ 和 $\vc{v}$ 之间的叉积 $\vc{u} \times \vc{v}$。可以移动相机,也可以移动 $\vc{u}$ 和 $\vc{v}$。 注意,浅黄色平行四边形的面积等于 $\vc{u} \times \vc{v}$ 的长度。 建议读者拖动向量进行探索:当 $\vc{u}$ 和 $\vc{v}$ 平行时会发生什么,以及当 $\vc{u}$ 和 $\vc{v}$ 交换顺序时 $\vc{u} \times \vc{v}$ 的方向如何变化。
交互图 4.8: 本交互图展示两个向量 $\hid{\vc{u}}$ 和 $\hid{\vc{v}}$ 之间的叉积 $\hid{\vc{u} \times \vc{v}}$。可以移动相机,也可以移动 $\hid{\vc{u}}$ 和 $\hid{\vc{v}}$。 注意,浅黄色平行四边形的面积等于 $\hid{\vc{u} \times \vc{v}}$ 的长度。 建议读者拖动向量进行探索:当 $\hid{\vc{u}}$ 和 $\hid{\vc{v}}$ 平行时会发生什么,以及当 $\hid{\vc{u}}$ 和 $\hid{\vc{v}}$ 交换顺序时 $\hid{\vc{u} \times \vc{v}}$ 的方向如何变化。
$\vc{u}$
$\vc{v}$
$\vc{u} \times \vc{v}$
$\ln{\vc{u}}=$
$\ln{\vc{v}}=$
$\sin [\vc{u},\vc{v}]=$
$\ln{\vc{u} \times \vc{v}}=$
另一种可视化叉积的方式见交互图 4.9
交互图 4.9: 本交互图以另一种方式展示如何理解叉积。和往常一样,我们关心叉积 $\vc{u} \times \vc{v}$,先从展示 $\vc{u}$ 开始。由定义,$\vc{u} \times \vc{v}$ 与 $\vc{u}$ 正交,因此我们可以得出结论:$\vc{u} \times \vc{v}$ 必在图中所示的浅蓝色平面内。
交互图 4.9: 最后,展示了叉积 $\hid{\vc{u} \times \vc{v}}$。注意,它无非是 $\hid{\vc{v}}$ 向平面的投影,但经旋转后与该投影正交。这是因为 $\hid{\vc{u} \times \vc{v}}$ 与 $\hid{\vc{u}}$ 和 $\hid{\vc{v}}$ 都正交。还要注意,在本例中 $\hid{\ln{\vc{u}}=1}$,以便简化图示。若 $\hid{\vc{u}}$ 取任意长度,蓝色向量(叉积)将按因子 $\hid{\ln{\vc{u}}}$ 缩放。
$\vc{u}$
$\vc{v}$
$\vc{u} \times \vc{v}$
$\ln{\vc{v}}\sin[\vc{u},\vc{v}]$
交互图 4.9 所示,我们实际上可以把叉积看作一种投影。理解叉积的第三种方式是:想象 $\vc{u}$ 是一个平面法向量,$\vc{v}$ 是另一个平面法向量。若 $\vc{u}$ 和 $\vc{v}$ 不平行,则叉积必与这两个平面的交直线平行。这一点留给读者在纸上作图验证。
4.4 运算法则与性质


点积类似,叉积也有一组运算法则。下面予以总结。

定理 4.1: 叉积运算法则
\begin{align} \begin{array}{llr} (1) :&\,\,\, \vc{u} \times \vc{v} = -\vc{v} \times \vc{u} & \spc\text{(anti-commutativity)} \\ (2) :&\,\,\, \vc{u} \times (\vc{v} + \vc{w}) = \vc{u} \times \vc{v} + \vc{u} \times \vc{w} & \spc\text{(distributivity)} \\ (3) :&\,\,\, (\vc{u} + \vc{v}) \times \vc{w} = \vc{u} \times \vc{w} + \vc{v} \times \vc{w} & \spc\text{(distributivity)}\\ (4) :&\,\,\, k(\vc{u} \times \vc{v}) = (k\vc{u}) \times \vc{v} = \vc{u} \times (k\vc{v}) & \spc\text{(associativity)} \end{array} \end{align} (4.7)

(1) 这直接由定义 4.1 得出,即我们知道 $\vc{u}$、$\vc{v}$ 和 $\vc{u} \times \vc{v}$ 构成正定向,若交换 $\vc{u}$ 和 $\vc{v}$ 的顺序,叉积将指向相反方向。
(2) 我们在交互图 4.9 中已经看到,叉积也可以看作经缩放的投影。此外,定理 3.1 的法则 (3) 指出 $\vc{u} \cdot (\vc{v} +\vc{w})=$ $\vc{u} \cdot \vc{v} + \vc{u} \cdot \vc{w}$。这是通过证明各投影之和等于和的投影而得到的。由于叉积的法则 (2) 可以看作经缩放的投影之和,以及和的经缩放投影,我们得出结论:(2) 必成立。画一幅类似交互图 4.9 的图可能会有帮助——将 $\vc{v}$ 和 $\vc{w}$ 都投影到以 $\vc{u}$ 为法向量平面上,并观察 $\vc{v} + \vc{w}$ 的投影。对此还有更形式化的证明,但这里给出的是我们认为有助于理解的直观推理。
(3) 由 (1) 和 (2),证明相当直接,即
\begin{align} (\vc{u} + \vc{v}) \times \vc{w} & \overset{(1)}{=} -\vc{w} \times (\vc{u} + \vc{v}) \\ & \overset{(2)}{=} -\vc{w} \times \vc{u} -\vc{w} \times\vc{v} \\ & \overset{(1)}{=} \vc{u} \times \vc{w} +\vc{v} \times\vc{w}, \\ \end{align} (4.8)
这正是我们要证明的。
(4) 这由叉积的定义以及向量的缩放法则得出。
$\square$


例 4.1: 使用叉积运算法则
在本例中,我们将使用定理 4.1 中的法则来化简两个表达式。我们从 $(\vc{u} + \vc{v}) \times (\vc{u} - \vc{v})$ 开始,沿用之前的约定,在等号上方用括号标注所用法则,
\begin{align} (\vc{u} + \vc{v}) \times (\vc{u} - \vc{v}) & \overset{(2,4)}{=} (\vc{u} + \vc{v}) \times \vc{u} - (\vc{u} + \vc{v}) \times \vc{v} \\ & \overset{(3)}{=} \underbrace{\vc{u} \times \vc{u}}_{=\vc{0}} + \vc{v} \times \vc{u} - \vc{u}\times \vc{v} - \underbrace{\vc{v} \times \vc{v}}_{=\vc{0}} \\ & \overset{(1)}{=} -2\vc{u} \times \vc{v}. \end{align} (4.9)
在第二个表达式中,我们简单地交换上面叉积中各项的顺序,即化简 $(\vc{u} - \vc{v}) \times (\vc{u} + \vc{v})$。结果略有不同,即
\begin{align} (\vc{u} - \vc{v}) \times (\vc{u} + \vc{v}) & \overset{(2,4)}{=} (\vc{u} - \vc{v}) \times \vc{u} + (\vc{u} - \vc{v}) \times \vc{v} \\ & \overset{(3)}{=} \underbrace{\vc{u} \times \vc{u}}_{=\vc{0}} - \vc{v} \times \vc{u} + \vc{u}\times \vc{v} - \underbrace{\vc{v} \times \vc{v}}_{=\vc{0}} \\ & \overset{(1)}{=} 2\vc{u} \times \vc{v}. \end{align} (4.10)
由于我们只是交换了叉积中各项的顺序,也可以直接使用式 (4.9) 的结果以及叉积的法则 (1),即可看出结果完全相同,只是取负。
接下来,让我们在交互图 4.10 中从几何角度看看这意味着什么。
交互图 4.10: 在本交互图中,我们将探索 $(\vc{u} + \vc{v}) \times (\vc{u} - \vc{v})$,特别是其长度:$\ln{(\vc{u} + \vc{v}) \times (\vc{u} - \vc{v})}$。回忆 $\ln{\vc{u} \times \vc{v}}$ 是由 $\vc{u}$ 和 $\vc{v}$ 张成的平行四边形的面积。我们先展示两个向量 $\vc{u}$ 和 $\vc{v}$,它们均可移动。点击/按下下一步继续。
交互图 4.10: 在本交互图的最后一步,其余四个三角形区域被涂成青色。很清楚,中间平行四边形的四个绿色三角形的面积,与四个青色三角形的面积相同。因此,很清楚 $\hid{\ln{(\vc{u} + \vc{v}) \times (\vc{u} - \vc{v})}=}$ $\hid{2\ln{\vc{u} \times \vc{v}}}$,这本质上就是我们在本例开头通过化简表达式所得到的结果。
$\vc{u}$
$\vc{v}$
$\vc{u}+\vc{v}$
$\vc{u}-\vc{v}$
$\vc{u}+\vc{v}$
$\vc{u}-\vc{v}$
$\vc{e}_1$
$\vc{e}_2$
$\vc{e}_3$
最后,我们注意到以下三个恒等式
\begin{align} \vc{e}_1 \times \vc{e}_2 &= \vc{e}_3, \\ \vc{e}_2 \times \vc{e}_3 &= \vc{e}_1, \\ \vc{e}_3 \times \vc{e}_1 &= \vc{e}_2, \\ \end{align} (4.11)
对任意右手标准正交基 $\vc{e}_1$、$\vc{e}_2$ 和 $\vc{e}_3$ 均成立。此时右侧的图可能会有帮助。此外,由于 $\vc{u}\times \vc{v} = -\vc{v}\times \vc{u}$,可得
\begin{align} \vc{e}_2 \times \vc{e}_1 &= -\vc{e}_3, \\ \vc{e}_3 \times \vc{e}_2 &= -\vc{e}_1, \\ \vc{e}_1 \times \vc{e}_3 &= -\vc{e}_2. \\ \end{align} (4.12)


定义 4.1 有些抽象。然而,在三维标准正交基中计算叉积有一种非常直接的方法。下面用定理予以总结。

定理 4.2: 标准正交基中的叉积
对于三维向量 $\vc{u}$ 和 $\vc{v}$,在正定向标准正交基中,叉积
\begin{equation} \vc{u} \times \vc{v} = (u_y v_z - u_z v_y, \, u_z v_x - u_x v_z, \, u_x v_y- u_y v_x). \end{equation} (4.13)

给定 $\vc{u} = u_x\vc{e}_1 + u_y\vc{e}_2 + u_z\vc{e}_3$ 且 $\vc{v} = v_x\vc{e}_1 + v_y\vc{e}_2 + v_z\vc{e}_3$,叉积可以表示如下,其中使用了定理 4.1 中的法则,
\begin{align} \vc{u} \times \vc{v} =& (u_x\vc{e}_1 + u_y\vc{e}_2 + u_z\vc{e}_3) \times (v_x\vc{e}_1 + v_y\vc{e}_2 + v_z\vc{e}_3)\\ =& u_x v_x \underbrace{\vc{e}_1 \times \vc{e}_1}_{=\vc{0}} + u_x v_y \vc{e}_1 \times \vc{e}_2 + u_x v_z \vc{e}_1 \times \vc{e}_3 + \\ & u_y v_x \vc{e}_2 \times \vc{e}_1 + u_y v_y \underbrace{\vc{e}_2 \times \vc{e}_2}_{=\vc{0}} + u_y v_z \vc{e}_2 \times \vc{e}_3 + \\ & u_z v_x \vc{e}_3 \times \vc{e}_1 + u_z v_y \vc{e}_3 \times \vc{e}_2 + u_z v_z \underbrace{\vc{e}_3 \times \vc{e}_3}_{=\vc{0}} \\ =& (u_x v_y - u_y v_x)\vc{e}_1 \times \vc{e}_2 + (u_x v_z - u_z v_x) \vc{e}_1 \times \vc{e}_3 + (u_y v_z - u_z v_y)\vc{e}_2 \times \vc{e}_3. \end{align} (4.14)
借助式 (4.11)式 (4.12),这可以改写为
\begin{align} \vc{u} \times \vc{v} =& (u_x v_y - u_y v_x)\underbrace{\vc{e}_1 \times \vc{e}_2}_{=\vc{e}_3} + (u_x v_z - u_z v_x)\underbrace{\vc{e}_1 \times \vc{e}_3}_{=-\vc{e}_2} + (u_y v_z - u_z v_y)\underbrace{\vc{e}_2 \times \vc{e}_3}_{=\vc{e}_1} \\ =& (u_y v_z - u_z v_y)\vc{e}_1 + (u_z v_x -u_x v_z)\vc{e}_2 + (u_x v_y - u_y v_x)\vc{e}_3. \end{align} (4.15)
证明完毕。
$\square$


使用定理 4.2 计算 叉积非常有用,但可能不易记住。一种更易记忆的方法称为 Sarrus 法则。 向量 $\vc{e}_1$、$\vc{e}_2$ 和 $\vc{e}_3$ 排成一行并重复一遍;其下一行同样写出 $\vc{u}$ 的 $x$-、$y$- 和 $z$-分量两遍;第三行对 $\vc{v}$ 作同样处理。如下所示:
\begin{equation} \begin{array}{cccccc} \!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!+ &\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\! + &\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\! + &\,\,\,\,\,\,\,\,\,\,\,\, - &\,\, - & - \\ \!\!\!\!\!\!\!\!\!\!\searrow &\!\!\!\!\!\!\!\!\! \searrow &\!\!\!\!\!\!\!\!\!\! \searrow & \!\swarrow &\!\!\!\!\!\!\!\!\! \swarrow &\!\!\!\!\!\!\!\!\!\!\! \swarrow \\ \vc{e}_1 & \vc{e}_2 & \vc{e}_3 &\!\!\!\!\!\!\!\!\! \vc{e}_1 &\!\!\!\!\!\!\!\!\!\!\!\!\!\!\! \vc{e}_2 &\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\! \vc{e}_3 \\ u_x & u_y & u_z &\!\!\!\!\!\!\!\!\! u_x &\!\!\!\!\!\!\!\!\!\!\!\!\!\!\! u_y &\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\! u_z \\ v_x & v_y & v_z &\!\!\!\!\!\!\!\!\! v_x &\!\!\!\!\!\!\!\!\!\!\!\!\!\!\! v_y &\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\! v_z \\ \end{array} \end{equation} (4.16)
接下来,沿箭头方向将各对角线上的所有项相乘,再按箭头上方的符号相加。结果为
\begin{equation} \vc{u}\times \vc{v} = +\vc{e}_1 u_y v_z +\vc{e}_2 u_z v_x +\vc{e}_3 u_x v_y -\vc{e}_1 u_z v_y -\vc{e}_2 u_x v_z -\vc{e}_3 u_y v_x, \end{equation} (4.17)
这无非就是 $\vc{u}\times \vc{v}=$$(u_y v_z-u_z v_y,\, u_z v_x-u_x v_z,\, u_x v_y-u_y v_x)$,即 定理 4.2

另一种方法是将向量分量按行写出,其中 $\vc{u}$ 的分量写在 $\vc{v}$ 的分量上方,即
\begin{equation} \begin{array}{ccc} u_x & u_y & u_z \\ v_x & v_y & v_z \end{array} \end{equation} (4.18)
要求得 $\vc{u} \times \vc{v}$ 的 $x$-分量,只需划去第一列,将东南对角线上的各项相乘,再减去西南对角线上的乘积,
\begin{equation} \left| \begin{array}{cc} u_y & u_z \\ v_y & v_z \end{array} \right| = u_y v_z - u_z v_y. \end{equation} (4.19)
注意上面剩余各项两侧的竖线。这是行列式(determinant)的记法,其内容见第 7 章。然后用同样方法求 $y$-分量和 $z$-分量,只是 $y$-分量前要加负号。总结如下
\begin{equation} \vc{u}\times \vc{v} = \Biggl( +\left| \begin{array}{cc} u_y & u_z \\ v_y & v_z \end{array} \right|, \, -\left| \begin{array}{cc} u_x & u_z \\ v_x & v_z \end{array} \right|, \, +\left| \begin{array}{cc} u_x & u_y \\ v_x & v_y \end{array} \right| \Biggr). \end{equation} (4.20)
4.5 标量三重积


三重积有两种,即以叉积为基础、含三项的乘积。其中一种产生向量,因此称为向量三重积(vector triple product),是4.6 节的主题。另一种产生标量,称为标量三重积(scalar triple product),是本节的主题。定义如下。

定义 4.2: 标量三重积
三个向量 $\vc{u}$、$\vc{v}$ 和 $\vc{w}$ 的标量三重积
\begin{equation} (\vc{u} \times \vc{v}) \cdot \vc{w}. \end{equation} (4.21)
有趣的是,这个表达式也是计算 $3\times 3$ 矩阵的行列式(determinant)的方法(其内容见第 7 章)。
事实证明,标量三重积可用于计算由三个向量 $\vc{u}$、$\vc{v}$ 和 $\vc{w}$ 张成的平行六面体(parallelepiped)的体积。下面用定理予以总结:

定理 4.3: 平行六面体的有向体积
标量三重积 $(\vc{u} \times \vc{v}) \cdot \vc{w}$ 可用于计算由 $\vc{u}$、$\vc{v}$ 和 $\vc{w}$ 张成的平行六面体的体积 $V$,即
\begin{align} V = +(\vc{u} \times \vc{v}) \cdot \vc{w}, & \hspace{5pt} \text{if the vectors are positively oriented}, \\ V = -(\vc{u} \times \vc{v}) \cdot \vc{w}, & \hspace{5pt} \text{if the vectors are negatively oriented}. \\ \end{align} (4.22)
这意味着体积恒为标量三重积的绝对值,即 $|(\vc{u} \times \vc{v}) \cdot \vc{w}|$。若其中任一向量为零向量,或有两个(或更多)向量平行,或三个向量都在同一平面内,则体积为零。

$\vc{u}$
$\vc{v}$
$\vc{w}$
$\vc{u} \times \vc{v}$
借助右侧由 $\vc{u}$、$\vc{v}$ 和 $\vc{w}$ 张成的平行六面体图,这就相当直接了。 如图 4.7 所示,并根据叉积的定义(定义 4.1), 叉积长度等于平行四边形的面积(图中黄色部分)。 也就是说,底面平行四边形的面积为 $\ln{\vc{u} \times \vc{v}}$,其中 叉积的方向取决于 $\vc{u}$ 和 $\vc{v}$ 的定向。 此外,根据点积的定义(定义 3.1), 我们知道 $\vc{a}\cdot \vc{w} =$$ \ln{\vc{a}}\,\ln{\vc{w}} \cos[\vc{a},\vc{w}]$。 现在,我们引入 $\vc{a} = \vc{u} \times \vc{v}$,从而得到
\begin{align} (\vc{u} \times \vc{v})\cdot \vc{w} =& \vc{a} \cdot \vc{w} = \ln{\vc{a}}\,\ln{\vc{w}} \cos[\vc{a},\vc{w}] \\ =& \underbrace{\ln{\vc{u} \times \vc{v}}}_{\text{base area}} \, \underbrace{\ln{\vc{w}} \cos[\vc{u} \times \vc{v},\vc{w}]}_{\text{height with sign}}. \end{align} (4.23)
可见,最终表达式是两因子相乘,其中第一个是底面平行四边形的面积,第二个是带符号的高度。 若暂时忽略符号,就得到平行六面体的体积。 符号来自余弦项,即 $\cos[\vc{u} \times \vc{v},\vc{w}]$。 现在,若 $\vc{u} \times \vc{v}$ 与 $\vc{w}$ 之间的最小角 $[\vc{u} \times \vc{v},\vc{w}]$ 小于 $\pi/2$,则余弦项为正;若大于 $\pi/2$,则为负。 由于 $\vc{u}$、$\vc{v}$ 和 $\vc{u} \times \vc{v}$ 构成右手系,当 $\vc{u}$、$\vc{v}$ 和 $\vc{w}$ 为正定向时,余弦项必为正,反之亦然。 证明完毕。
$\square$


可见,判断三个向量是否为正定向(即是否构成右手系)很简单,只需检验 $(\vc{u}\times \vc{v}) \cdot \vc{w} > 0$ 是否成立。 此外,对于三维中的右手标准正交基,有 $\ln{\vc{e}_1}=1$、$\ln{\vc{e}_2}=1$ 和 $\ln{\vc{e}_3}=1$,以及 $\vc{e}_1 \cdot \vc{e}_2 = 0$、$\vc{e}_1 \cdot \vc{e}_3 = 0$ 和 $\vc{e}_2 \cdot \vc{e}_3 = 0$。进一步,必有 $(\vc{e}_1 \times \vc{e}_2)\cdot \vc{e}_3 > 0$。 事实上,由于各向量已归一化且两两正交,我们有
\begin{gather} \underbrace{(\vc{e}_1 \times \vc{e}_2)}_{\vc{e}_3} \cdot \vc{e}_3 = \vc{e}_3\cdot \vc{e}_3=1, \end{gather} (4.24)
对于右手标准正交基

注意,由于标量三重积计算的是平行六面体的体积(带符号),我们实际上可以在仍构成正定向系的前提下,改变标量三重积表达式中向量的顺序。因此,我们有
\begin{equation} (\vc{u} \times \vc{v}) \cdot \vc{w} = (\vc{v} \times \vc{w}) \cdot \vc{u} = (\vc{w} \times \vc{u}) \cdot \vc{v}. \end{equation} (4.25)
也可以利用定理 4.1 的规则 (1),$\vc{u} \times \vc{v} = -\vc{v} \times \vc{u}$,在这些表达式中改变符号:
\begin{equation} (\vc{u} \times \vc{v}) \cdot \vc{w} = -(\vc{v} \times \vc{u}) \cdot \vc{w} = -(\vc{w} \times \vc{v}) \cdot \vc{u} = -(\vc{u} \times \vc{w}) \cdot \vc{v}. \end{equation} (4.26)
注意,对于标准正交基,若它同时是右手的,即正定向系,则必有 $(\vc{e}_1\times \vc{e}_2) \cdot \vc{e}_3 = 1$。
4.6 向量三重积


顾名思义,向量三重积是三个向量的乘积。 在介绍向量三重积之前,我们先介绍它的一个简化版本,其中两个向量相同:

定理 4.4: 简化的向量三重积
当向量三重积的前两项相同时,有
\begin{equation} \vc{u} \times (\vc{u} \times \vc{v}) = (\vc{u} \cdot \vc{v})\vc{u} - (\vc{u} \cdot \vc{u})\vc{v}. \end{equation} (4.27)

$\vc{u}$
$\vc{v}$
$\vc{u}\times \vc{v}$
$\vc{u}\times (\vc{u}\times \vc{v})$
如右图所示,$\vc{u}$、$\vc{u}\times \vc{v}$ 和 $\vc{u}\times (\vc{u}\times \vc{v})$ 构成右手系,且彼此正交。 这意味着我们可以通过将 $\vc{v}$ 投影到 $\vc{u}\times (\vc{u}\times \vc{v})$ 上来构造一个向量,记为 $\vc{a}$:
\begin{equation} \vc{a} = \vc{v} - \proj{\vc{u}}{\vc{v}}. \end{equation} (4.28)
可见,为避免使用 $\vc{u}\times (\vc{u}\times \vc{v})$,我们从 $\vc{v}$ 中减去了 $\vc{v}$ 在 $\vc{u}$ 上的投影。 由构造(见图 4.13), $\vc{a}$ 与 $\vc{u}\times (\vc{u}\times \vc{v})$ 平行且方向相反。 因此,我们需要给 $\vc{a}$ 乘以一个因子,使其长度 与 $\vc{u}\times (\vc{u}\times \vc{v})$ 相同。 $\vc{u}\times (\vc{u}\times \vc{v})$ 的长度平方为
\begin{align} \ln{\vc{u}\times (\vc{u}\times \vc{v})}^2 =& \ln{\vc{u}}^2 \, \underbrace{ \ln{\vc{u}}^2 \ln{\vc{v}}^2 \sin^2[\vc{u}, \vc{v}] }_{ \ln{\vc{u} \times \vc{v}}^2} \\ =&\ln{\vc{u}}^4\ln{\vc{v}}^2 \bigl(1-\cos^2[\vc{u}, \vc{v}]\bigr) \\ =&\ln{\vc{u}}^4\ln{\vc{v}}^2 - \ln{\vc{u}}^4\ln{\vc{v}}^2 \cos^2[\vc{u}, \vc{v}] \\ =& \ln{\vc{u}}^4\ln{\vc{v}}^2 - \ln{\vc{u}}^2 (\vc{u} \cdot \vc{v})^2. \end{align} (4.29)
在上面的第一中,我们看到 $\vc{u} \times \vc{v}$ 的长度乘以 $\ln{\vc{u}}$。这是因为 $\vc{u}$ 与 $\vc{u} \times \vc{v}$ 已经正交,因此 $\sin$ 项变为 1。 接下来,我们在 $\vc{a}$ 的表达式中写出完整的投影公式,
\begin{equation} \vc{a} = \vc{v} - \frac{\vc{u}\cdot \vc{v}}{\vc{u}\cdot \vc{u}}\vc{u}. \end{equation} (4.30)
若将上式乘以 $\vc{u}\cdot \vc{u}$,则得
\begin{equation} \vc{b} = (\vc{u}\cdot \vc{u})\vc{v} - (\vc{u}\cdot \vc{v})\vc{u}. \end{equation} (4.31)
现在,我们来考察该向量的长度平方,
\begin{align} \ln{\vc{b}}^2 &= (\vc{u}\cdot \vc{u})^2 (\vc{v}\cdot\vc{v}) -2(\vc{u}\cdot \vc{u})(\vc{u}\cdot \vc{v})^2 + (\vc{u}\cdot \vc{v})^2(\vc{u} \cdot \vc{u}) \\ &=(\vc{u}\cdot \vc{u})^2 (\vc{v}\cdot\vc{v}) -(\vc{u}\cdot \vc{u})(\vc{u}\cdot \vc{v})^2 \\ &= \ln{\vc{u}}^4\ln{\vc{v}}^2 - \ln{\vc{u}}^2(\vc{u}\cdot \vc{v})^2, \end{align} (4.32)
这与式 (4.29) 相同,从而证明了该定理。
$\square$


接下来介绍完整的向量三重积,它有时称为 Lagrange 公式,或三重积展开式,见下面定理。

定理 4.5: 向量三重积
向量 $\vc{u}$、$\vc{v}$ 和 $\vc{w}$ 的三重积
\begin{equation} \vc{u} \times (\vc{v} \times \vc{w}) = (\vc{u} \cdot \vc{w})\vc{v} - (\vc{u} \cdot \vc{v})\vc{w}. \end{equation} (4.33)

我们假设向量 $\vc{v}$ 与 $\vc{w}$ 不平行,否则乘积将为零向量。 因此,$\vc{u}$ 可用 $\vc{v}$ 和 $\vc{w}$ 表示:
\begin{equation} \vc{u} = a\vc{v} + b\vc{w} + c(\vc{v} \times \vc{w}), \end{equation} (4.34)
其中 $a$、$b$ 和 $c$ 为某些取值。 我们来化简点积 $\vc{u}\cdot \vc{v}$ 与 $\vc{u}\cdot \vc{w}$ 的表达式,
\begin{align} \vc{u}\cdot \vc{v} & = (a\vc{v} + b\vc{w} + c(\vc{v} \times \vc{w}))\cdot \vc{v} \\ & = a(\vc{v}\cdot\vc{v}) + b(\vc{w}\cdot \vc{v}) + c\underbrace{(\vc{v} \times \vc{w})\cdot \vc{v}}_{=0}\\ & = a(\vc{v}\cdot\vc{v}) + b(\vc{w}\cdot \vc{v}) . \end{align} (4.35)
同样,我们得到
\begin{equation} \vc{u}\cdot \vc{w} = a(\vc{v}\cdot\vc{w}) + b(\vc{w}\cdot \vc{w}). \end{equation} (4.36)
现在,我们利用式 (4.34)定理 4.4, 化简 $\vc{u} \times (\vc{v} \times \vc{w})$,即
\begin{align} \vc{u} \times (\vc{v} \times \vc{w}) &= (a\vc{v} + b\vc{w} + c(\vc{v} \times \vc{w}))\times (\vc{v} \times \vc{w}) \\ &= a\vc{v}\times (\vc{v} \times \vc{w}) + b\vc{w} \times (\vc{v} \times \vc{w}) + c\underbrace{(\vc{v} \times \vc{w})\times (\vc{v} \times \vc{w})}_{=\vc{0}} \\ &= a\underbrace{\vc{v}\times (\vc{v} \times \vc{w})}_{(\vc{v} \cdot \vc{w})\vc{v} - (\vc{v} \cdot \vc{v})\vc{w}} - b\underbrace{\vc{w} \times (\vc{w} \times \vc{v})}_{(\vc{w} \cdot \vc{v})\vc{w} - (\vc{w} \cdot \vc{w})\vc{v}} \\ &= a\bigl((\vc{v} \cdot \vc{w})\vc{v} - (\vc{v} \cdot \vc{v})\vc{w}\bigr) - b\bigl((\vc{w} \cdot \vc{v})\vc{w} - (\vc{w} \cdot \vc{w})\vc{v}\bigr) \\ &=\bigl(\underbrace{a (\vc{v} \cdot \vc{w}) +b (\vc{w} \cdot \vc{w}}_{\vc{u}\cdot\vc{w}})\bigr)\vc{v} - \bigl(\underbrace{a(\vc{v} \cdot \vc{v}) + b(\vc{w} \cdot \vc{v})}_{\vc{u}\cdot\vc{v}}\bigr)\vc{w}\\ &= (\vc{u}\cdot\vc{w})\vc{v} - (\vc{u}\cdot\vc{v})\vc{w}, \end{align} (4.37)
这正是我们要证明的。注意,定理 4.4 在第三行使用了两次。 此外,式 (4.35)式 (4.36) 在倒数第二行中被用到。

$\square$


我们可以利用向量三重积证明向量叉积不满足结合律,即 $(\vc{a} \times \vc{b}) \times \vc{c} \neq \vc{a} \times (\vc{b} \times \vc{c})$。对 $\vc{u} = \vc{a}$、$\vc{v} = \vc{b}$ 和 $\vc{w} = \vc{c}$ 使用 定理 4.5
\begin{equation} \vc{a} \times (\vc{b} \times \vc{c}) = (\vc{a}\cdot\vc{c})\vc{b} - (\vc{a}\cdot \vc{b})\vc{c}. \end{equation} (4.38)
现在我们可以再次使用该定理,这次取 $\vc{v} = \vc{a}$、$\vc{w} = \vc{b}$ 和 $\vc{u} = \vc{c}$,得到
\begin{equation} \vc{c} \times (\vc{a} \times \vc{b}) = (\vc{c}\cdot\vc{b})\vc{a} - (\vc{c}\cdot \vc{a})\vc{b}. \end{equation} (4.39)
在第二个表达式中,我们可以交换 $\vc{c}$ 与 $(\vc{a}\times \vc{b})$ 的顺序,同时改变符号(见定理 4.1 的第一条规则)。这意味着
\begin{equation} (\vc{a} \times \vc{b})\times \vc{c} = -(\vc{c}\cdot\vc{b})\vc{a} + (\vc{c}\cdot \vc{a})\vc{b}. \end{equation} (4.40)
现在,若叉积满足结合律,即 $(\vc{a} \times \vc{b}) \times \vc{c} = \vc{a} \times (\vc{b} \times \vc{c})$,则式 (4.38)式 (4.40) 的右端必须相等。注意,括号中的表达式是标量值,令两式右端相等得到
\begin{equation} k_1 \vc{b} + k_2 \vc{c} = k_3 \vc{b} + k_4 \vc{a}, \end{equation} (4.41)
其中 $k_1, k_2, k_3$ 与 $k_4$ 为某些标量。这仅在下列条件下成立:
\begin{equation} k_2 \vc{c} = (k_3-k_1) \vc{b} + k_4 \vc{a}, \end{equation} (4.42)
这意味着 $\vc{c}$ 位于由 $\vc{b}$ 和 $\vc{a}$ 张成的平面内,而一般情况下并非如此。因此,叉积不满足结合律

向量三重积定理还可用来证明叉积满足 Jacobi 恒等式,如下所示。

定理 4.6: 叉积的 Jacobi 恒等式
向量三重积满足下列关系:
\begin{equation} \vc{u} \times (\vc{v} \times \vc{w}) + \vc{v} \times (\vc{w} \times \vc{u}) + \vc{w} \times (\vc{u} \times \vc{v}) =0. \end{equation} (4.43)

我们直接利用定理 4.5 证明 Jacobi 恒等式:
\begin{gather} \vc{u} \times (\vc{v} \times \vc{w}) + \vc{v} \times (\vc{w} \times \vc{u}) + \vc{w} \times (\vc{u} \times \vc{v}) = \\ (\vc{u} \cdot \vc{w})\vc{v} - (\vc{u} \cdot \vc{v})\vc{w} + (\vc{v} \cdot \vc{u})\vc{w} - (\vc{v} \cdot \vc{w})\vc{u} + (\vc{w} \cdot \vc{v})\vc{u} - (\vc{w} \cdot \vc{u})\vc{v}=0, \end{gather} (4.44)
因为 $\vc{u}\cdot\vc{v} = \vc{v}\cdot\vc{u}$,证明完毕。
$\square$


4.7 例


本章以若干例收尾。

例 4.2: 两个二维向量的定向
给定标准正交基中的两个二维向量 $\vc{u}$ 与 $\vc{v}$,我们希望确定它们的定向关系。 关于此主题的小型交互图见图 4.4。 如前所见,对三维向量这很简单,即可以直接 使用定理 4.2,然后考察 叉积指向哪个方向。 因此,可以给二维向量再增加一个分量,即 $z$ 分量,并设其为零。这意味着得到 $\vc{u}' = (u_x, u_y, 0)$ 与 $\vc{v}' = (v_x, v_y, 0)$。 于是叉积为:
\begin{equation} \vc{u}' \times \vc{v}' = (u_x, u_y, 0) \times (v_x, v_y, 0) = (0,0, u_x v_y - u_y v_x). \end{equation} (4.45)
注意,$x$ 分量和 $y$ 分量均为零。这是因为 $\vc{u}'$ 与 $\vc{v}'$ 都在 $xy$-平面内(即它们的 $z$ 分量为零),因此点积必与 $xy$-平面正交
因此,要确定 $\vc{u}$ 与 $\vc{v}$ 的定向,只需计算 $s = u_x v_y - u_y v_x$。 若 $s>0$,则它们正定向;若 $s<0$,则负定向;否则它们平行。

例 4.3: 三角形的法向量与平面方程
给定顶点为 $A$、$B$ 和 $C$ 的三角形,我们希望计算该三角形所在平面法向量。首先构造两条边向量:
\begin{align} \vc{u} =& B - A, \\ \vc{v} =& C - A. \\ \end{align} (4.46)
法向量 $\vc{n}$ 就是边向量的叉积,即
\begin{equation} \vc{n} = \vc{u} \times \vc{v}. \end{equation} (4.47)
事实上,这与计算 图 4.2 中 Lambertian 着色时使用的方法相同。

现在我们已知平面法向量 $\vc{n}$,且 $A$、$B$ 和 $C$ 都在该三角形所在平面内,因此可以求出该三角形的平面方程(3.6.2 节)。 平面方程就是
\begin{gather} \vc{n} \cdot (P-A) = 0 \\ \Longleftrightarrow \\ (\vc{u} \times \vc{v})\cdot (P-A) = 0, \end{gather} (4.48)
其中 $P$ 是平面上任意一点,$A$ 是我们已知位于该平面内的一点。 我们本可以任选一点,例如 $B$ 或 $C$。 注意,由于法向量表示为叉积,整个平面方程就表现为一个标量三重积

例 4.4: 四面体体积
$A$
$B$
$C$
$D$
给定由四个点 $A$、$B$、$C$ 和 $D$ 定义的四面体,我们要求该几何体的体积。 首先,从 $A$ 出发构造三条边向量:
\begin{align} \vc{u} =& B - A, \\ \vc{v} =& C - A, \\ \vc{w} =& D - A. \\ \end{align} (4.49)
四面体的体积等于这三个向量的标量三重积绝对值的六分之一,也就是说,由 $\vc{u}$、$\vc{v}$ 和 $\vc{w}$ 张成的平行六面体内可以恰好放入六个四面体。 建议读者用纸笔自行证明这一点。 四面体的体积可写为
\begin{equation} \frac{1}{6} | (\vc{u} \times \vc{v}) \cdot \vc{w} |, \end{equation} (4.50)
其中我们需要取标量三重积的绝对值,以防 $\vc{u}$、$\vc{v}$ 和 $\vc{w}$ 在负定向系中给出。

例 4.5: 由两个向量构造标准正交基
假设我们有两个不平行的向量 $\vc{u}$ 和 $\vc{v}$,希望构造一个标准正交基,其中 $\vc{u}$ 与其中一个向量平行,即
\begin{equation} \vc{e}_1 = \frac{1}{\ln{\vc{u}}} \vc{u}. \end{equation} (4.51)
第一个向量就是归一化后的 $\vc{u}$。由于 $\vc{u}$ 和 $\vc{v}$ 之间的夹角可以是任意的,我们不能直接将 $\vc{v}$ 的归一化版本用作向量。不过,我们可以改用归一化后的叉积
\begin{equation} \vc{e}_2 = \frac{1}{\ln{\vc{u}\times \vc{v}}} (\vc{u}\times \vc{v}). \end{equation} (4.52)
最后,利用叉积从 $\vc{e}_1$ 和 $\vc{e}_2$ 构造 $\vc{e}_3$,即
\begin{equation} \vc{e}_3 = \vc{e}_1 \times \vc{e}_2. \end{equation} (4.53)
可以看出,第三个向量可以直接利用简化的向量三重积(定理 4.4)构造
\begin{equation} \vc{e}_3 = \vc{e}_1 \times \vc{e}_2 = \frac{1}{\ln{\vc{u}} \, \ln{\vc{u}\times \vc{v}}} \vc{u} \times (\vc{u}\times \vc{v}). \end{equation} (4.54)
于是为 $\{\vc{e}_1$、$\vc{e}_2$ 和 $\vc{e}_3\}$。
4.8 引言例子的后续


4.1 节中,我们需要计算三角形的归一化法向量。 三角形的法向量是与三角形所在平面正交的向量。现在我们知道了叉积的运算方式,这就很简单了。 假设三角形的顶点称为 $P_1$、$P_2$ 和 $P_3$,即它们是三维点。 我们选取 $P_3$ 作为参考点来计算边向量,即从 $P_3$ 到 $P_1$ 和 $P_2$ 的向量。 这可以表示为
\begin{align} \vc{e}_1 &= P_1 - P_3, \\ \vc{e}_2 &= P_2 - P_3. \end{align} (4.55)
现在,未归一化法向量就是 $\vc{e}_1$ 和 $\vc{e}_2$ 的叉积,即
\begin{equation} \vc{m} = \vc{e}_1 \times \vc{e}_2. \end{equation} (4.56)
将 $\vc{m}$ 归一化,得到单位法向量,即
\begin{equation} \vc{n} = \frac{\vc{m}}{\ln{\vc{m}}}. \end{equation} (4.57)
注意,根据顶点的排列顺序,我们可以将法向量的方向切换为相反方向。


第 3 章:点积(上一章) 第 5 章:高斯消元法(下一章)
关于本译本