向量运算与应用 agile Posted on Oct 2 2021 优秀博文 > 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码, 原文地址 [zhuanlan.zhihu.com](https://zhuanlan.zhihu.com/p/362035810) 什么是向量 ----- **向量指具有大小和方向的量**,一般记做: **a** , ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) , ![](https://www.zhihu.com/equation?tex=%5Cvec%7BAB%7D) ,同时也可以用数对的形式表示,例如:(x, y) ,(7,8,9) **向量的矩阵**表示: ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D+%3D+%5Cbegin%7Bbmatrix%7D+x+%5C%5Cy%5Cend%7Bbmatrix%7D) ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%3D%5Cbegin%7Bbmatrix%7D+x%5C%5C+y%5C%5C+z+%5Cend%7Bbmatrix%7D) **向量的大小**,也就是向量的长度(一般称作为 模),向量 a 的模记为: ![](https://www.zhihu.com/equation?tex=%5Cleft+%7C+%5Cvec%7Ba%7D+%5Cright+%7C) ,若 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D+%3D+%5Cleft+%28+x%2Cy%2Cz+%5Cright+%29) ,则 ![](https://www.zhihu.com/equation?tex=%5Cleft+%7C+%5Cvec%7Ba%7D+%5Cright+%7C+%3D+%5Csqrt%7Bx%5E2+%2B+y%5E2%2B+z%5E2%7D) **单位向量:**即模为 1 的向量,可以记作 ![](https://www.zhihu.com/equation?tex=%5Chat%7Ba%7D) 。一个向量的单位向量,可以通过除以它模得到,即 ![](https://www.zhihu.com/equation?tex=%5Chat%7Ba%7D+%3D+%5Cfrac%7B%5Cvec%7Ba%7D%7D%7B%7C+%5Cvec%7Ba%7D%7C%7D) 。 **零向量:**即模为 0 的向量,零向量的方向是任意的 **相反向量:**长度相等方向相反的向量, ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) 的相反向量为 ![](https://www.zhihu.com/equation?tex=-%5Cvec%7Ba%7D) **平行(共线)向量:**方向相同或相反的非零向量,记作 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D+%2F%2F+%5Cvec%7Bb%7D) 向量运算 ---- 设 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%3D%28x_1%2Cy_1%2Cz_1%29) , ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D%3D%28x_2%2Cy_2%2Cz_2%29) ### 加法 向量的加法满足平行四边形法则和三角形法则, ![](https://www.zhihu.com/equation?tex=%5Cvec%7BOA%7D+%2B+%5Cvec%7BOB%7D+%3D+%5Cvec%7BOC%7D) ![](https://pic2.zhimg.com/80/v2-89610db4be0512e622680f8edd9ea08d_1440w.png) 可以将其想象成一个长方形求对角线。 **运算过程:** ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D+%2B+%5Cvec%7Bb%7D+%3D+%28x_1%2Cy_1%2Cz_1%29%2B%28x_2%2Cy_2%2Cz_2%29%3D%28x_1%2Bx_2%2Cy_1%2By_2%2Cz_1%2Bz_2%29) ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D+%2B+%5Cvec%7Bb%7D+%3D+%5Cbegin%7Bbmatrix%7D+x_%7B1%7D%5C%5C+y_%7B1%7D+%5C%5Cz_1%5Cend%7Bbmatrix%7D+%2B+%5Cbegin%7Bbmatrix%7D+x_%7B2%7D%5C%5C+y_%7B2%7D+%5C%5Cz_2%5Cend%7Bbmatrix%7D+%3D+%5Cbegin%7Bbmatrix%7D+x_%7B1%7D+%2B+x_%7B2%7D%5C%5C+y_%7B1%7D+%2B+y_%7B2%7D+%5C%5Cz_1%2Bz_2%5Cend%7Bbmatrix%7D) **一些运算律:** ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D+%2B+0+%3D+0+%2B+%5Cvec%7Ba%7D+%3D+%5Cvec%7Ba%7D) 交换律: ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D+%2B+%5Cvec%7Bb%7D+%3D+%5Cvec%7Bb%7D+%2B+%5Cvec%7Ba%7D) 结合律: ![](https://www.zhihu.com/equation?tex=%5Cleft+%28+%5Cvec%7Ba%7D+%2B+%5Cvec%7Bb%7D+%5Cright%29+%2B+%5Cvec%7Bc%7D+%3D+%5Cvec%7Ba%7D+%2B+%5Cleft+%28+%5Cvec%7Bb%7D+%2B+%5Cvec%7Bc%7D+%5Cright%29) ### 减法 ![](https://www.zhihu.com/equation?tex=%5Cvec%7BOA%7D+-+%5Cvec%7BOB%7D+%3D+%5Cvec%7BBA%7D) ,如图 ![](https://pic2.zhimg.com/80/v2-d6bf60bc35ddfbc0d0506dd456e819d1_1440w.jpg) **运算过程:** ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D+-+%5Cvec%7Bb%7D+%3D+%28x_1%2Cy_1%2Cz_1%29%2B%28x_2%2Cy_2%2Cz_2%29%3D%28x_1-x_2%2Cy_1-y_2%2Cz_1-z_2%29) ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D+-+%5Cvec%7Bb%7D+%3D+%5Cbegin%7Bbmatrix%7D+x_%7B1%7D%5C%5C+y_%7B1%7D+%5C%5Cz_1%5Cend%7Bbmatrix%7D+-+%5Cbegin%7Bbmatrix%7D+x_%7B2%7D%5C%5C+y_%7B2%7D%5C%5Cz_2+%5Cend%7Bbmatrix%7D+%3D+%5Cbegin%7Bbmatrix%7D+x_%7B1%7D+-+x_%7B2%7D%5C%5C+y_%7B1%7D+-+y_%7B2%7D+%5C%5Cz_1-z_2%5Cend%7Bbmatrix%7D) **一些运算律:** ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%2B%28-%5Cvec%7Bb%7D%29%3D%5Cvec%7Ba%7D-%5Cvec%7Bb%7D) 实数和向量的积 ------- 设有实数 k,和向量 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) 的乘积还是一个向量,记做 ![](https://www.zhihu.com/equation?tex=k%5Cvec%7Ba%7D) ,且 ![](https://www.zhihu.com/equation?tex=+%7C+k+%5Cvec%7Ba%7D+%7C+%3D++%7C+k%7C+%2A+%7C+%5Cvec%7Ba%7D+%7C) ,如果 ![](https://www.zhihu.com/equation?tex=k%5Cvec%7Ba%7D%3D0) ,则 k = 0 或 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%3D0) 其几何意义为:向量的有向线段的伸长或者压缩。 **一些运算律**: 结合律: ![](https://www.zhihu.com/equation?tex=%28+k%5Cvec%7Ba%7D+%29%5Ccdot+%5Cvec%7Bb%7D+%3D+k%28%5Cvec%7Ba%7D+%5Ccdot+%5Cvec%7Bb%7D+%29+%3D+%5Cvec%7Ba%7D+%5Ccdot+%28+k%5Cvec%7Bb%7D+%29) 分配律: ![](https://www.zhihu.com/equation?tex=%28+j%2B+k%29+%5Cvec%7Ba%7D+%3D+j%5Cvec%7Ba%7D+%2B+k%5Cvec%7Ba%7D) ![](https://www.zhihu.com/equation?tex=k%28+%5Cvec%7Ba%7D+%2B+%5Cvec%7Bb%7D+%29+%3Dk%5Cvec%7Ba%7D+%2Bk%5Cvec%7Bb%7D) ### 向量的点乘(点积,内积,数量积)(Dot Product) 两个向量的数量积(点积,内积,点乘)是一个数量,没有方向,记作 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%5Ccdot+%5Cvec%7Bb%7D) **代数定义:** ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%5Ccdot+%5Cvec%7Bb%7D+%3D+x_%7B1%7Dx_%7B2%7D%2By_%7B1%7Dy_%7B2%7D%2Bz_1z_2) **几何定义:**我们将 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) 和 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D) 的夹角记作 ![](https://www.zhihu.com/equation?tex=%5Ctheta) ,且 ![](https://www.zhihu.com/equation?tex=0%5Cleqslant+%5Ctheta+%5Cleqslant+%5Cpi) 若 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) , ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D) 不共线,则 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%5Ccdot+%5Cvec%7Bb%7D+%3D+%7C+%5Cvec%7Ba%7D+%7C+%5Ccdot+%7C+%5Cvec%7Bb%7D+%7C%5Ccdot+cos%5Ctheta) 若 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) , ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D) 共线,则 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%5Ccdot+%5Cvec%7Bb%7D+%3D+%5Cpm+%5Cleft+%7C+%5Cvec%7Ba%7D+%5Cright+%7C+%5Ccdot+%5Cleft+%7C+%5Cvec%7Bb%7D+%5Cright+%7C) ,因为此时 ![](https://www.zhihu.com/equation?tex=%5Ctheta%3D0) 则 ![](https://www.zhihu.com/equation?tex=%5Ccos%5Ctheta%3D1),若两个向量方向相反,则认为![](https://www.zhihu.com/equation?tex=%5Ctheta%3D%5Cpi) 则 ![](https://www.zhihu.com/equation?tex=%5Ccos%5Ctheta%3D-1)。 **一些运算律:** 交换律: ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%5Ccdot+%5Cvec%7Bb%7D%3D%5Cvec%7Bb%7D%5Ccdot+%5Cvec%7Ba%7D) 结合律: ![](https://www.zhihu.com/equation?tex=%28+k%5Cvec%7Ba%7D+%29%5Ccdot+%5Cvec%7Bb%7D+%3D+k%28+%5Cvec%7Ba%7D%5Ccdot+%5Cvec%7Bb%7D+%29) 分配率: ![](https://www.zhihu.com/equation?tex=%28+%5Cvec%7Ba%7D+%2B+%5Cvec%7Bb%7D+%29%5Ccdot+%5Cvec%7Bc%7D+%3D%5Cvec%7Ba%7D%5Ccdot+%5Cvec%7Bc%7D+%2B+%5Cvec%7Bb%7D%5Ccdot+%5Cvec%7Bc%7D) **一些性质:** ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%5Ccdot+%5Cvec%7Ba%7D+%3D+%7C+%5Cvec%7Ba%7D+%7C+%5E%7B2%7D) 若两个向量互相垂直,则 ![](https://www.zhihu.com/equation?tex=%5Ccos%5Ctheta%3D0) 因此 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%5Cperp+%5Cvec%7Bb%7D+%5Cleftrightharpoons+%5Cvec%7Ba%7D%5Ccdot+%5Cvec%7Bb%7D+%3D+0) ### 点乘的实际使用场景 1. 计算两个向量的夹角,通过点乘我们可以得到: ![](https://www.zhihu.com/equation?tex=cos%5Ctheta+%3D+%5Cfrac%7B%5Cvec%7Ba%7D%5Ccdot+%5Cvec%7Bb%7D%7D%7B%7C+%5Cvec%7Ba%7D+%7C+%5Ccdot+%7C+%5Cvec%7Bb%7D+%7C%7D+%3D+%5Cfrac%7Bx_1x_2%2By_1y_2%2Bz_1z_2%7D%7B%5Csqrt%7Bx_1%5E2%2By_1%5E2%2Bz_1%5E2%7D%2A%5Csqrt%7Bx_2%5E2%2By_2%5E2%2Bz_2%5E2%7D%7D) 若 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) 和 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D) 为单位向量,即模为 1,那么上面的式子分母即为 1,得 ![](https://www.zhihu.com/equation?tex=cos%5Ctheta+%3D+x_1x_2%2By_1y_2%2Bz_1z_2) 2. 可以用来求一个向量在另一个向量上的**投影**,例如图中 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D) 在 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) 上的投影,我们记作 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D+_%7B%5Cperp+%7D) ![](https://pic4.zhimg.com/v2-7ac8f4f895b30c957a242ea674f1ed4b_r.jpg) 因为 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D+_%7B%5Cperp+%7D) 是 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D) 在 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) 上的投影,因此 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D+_%7B%5Cperp+%7D)的方向和 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) 相同。因此 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D+_%7B%5Cperp+%7D+%3D+k+%5Chat%7Ba%7D) ,k 为一个常量,![](https://www.zhihu.com/equation?tex=%5Chat%7Ba%7D) 为 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) 的单位向量。 ![](https://www.zhihu.com/equation?tex=%5Chat%7Ba%7D) 的值我们很好求得: ![](https://www.zhihu.com/equation?tex=%5Chat%7Ba%7D%3D%5Cfrac%7B%5Cvec%7Ba%7D%7D%7B%7C%5Cvec%7Ba%7D%7C%7D) 接下来要看看 k 值的含义,因为 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D+_%7B%5Cperp+%7D) 和 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) 方向相同, 因此 ![](https://www.zhihu.com/equation?tex=%5Chat%7Ba%7D) 不仅是 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) 的单位向量,同时也是 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D+_%7B%5Cperp+%7D) 的单位向量,因此 k 即为 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D+_%7B%5Cperp+%7D) 的模,即 ![](https://www.zhihu.com/equation?tex=k%3D%7C%5Cvec%7Bb%7D+_%7B%5Cperp+%7D%7C) 然后由于 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D) 的结尾与 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D+_%7B%5Cperp+%7D) 的结尾的连线,垂直于 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) (如图,也是投影的性质),因此通过三角函数,我们可以得知 ![](https://www.zhihu.com/equation?tex=%7C%5Cvec%7Bb%7D+_%7B%5Cperp+%7D%7C%3D%7C%5Cvec%7Bb%7D+%7C%2A%5Ccos%5Ctheta) ![](https://www.zhihu.com/equation?tex=%7C%5Cvec%7Bb%7D%7C) 的值很好求得, ![](https://www.zhihu.com/equation?tex=%5Ccos%5Ctheta) 我们可以通过点乘得到,因此即可求得 k 的值,然后求得 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D+_%7B%5Cperp+%7D) 如图,通过向量的减法,我们可以得到 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D-%5Cvec%7Bb%7D+_%7B%5Cperp+%7D) ,这样就把 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D) 分解成了两个互相垂直的向量。 若我们要把向量 (x, y, z) 投影到 x,y,z 的某个平面上,只需要把垂直于该平面的那个轴对应的值设置为 0 即可,例如:投影到 xy 平面,即为 (x, y, 0) ,投影到 yz 平面上,即为 (0, y, z)。若投影到某个轴上,则只保留该轴的值即可,例如:投影到 x 轴上,即为 (x, 0, 0),投影到 y 轴上,即为 (0, y, 0)。 3. 判断一个向量的朝向是否和另个向量相似,即两个向量的**方向性**,如图 ![](https://pic4.zhimg.com/v2-d842c78e8acac7685920b31d21f9b8c7_r.jpg) 图中我们可以认为, ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D) 和 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) 一样,同时朝向前方,而 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bc%7D) 朝向的是 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) 的后方。我们可以通过点积的值来判断, **> 0 则为同方向(0 <= 夹角 < 90), < 0 则为反方向(90 < 夹角 <= 180), = 0 即为垂直(夹角 = 90)**。 因为 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%5Ccdot+%5Cvec%7Bb%7D+%3D+%7C+%5Cvec%7Ba%7D+%7C+%5Ccdot+%7C+%5Cvec%7Bb%7D+%7C%5Ccdot+cos%5Ctheta) ,若两个都是非零向量,则 ![](https://www.zhihu.com/equation?tex=%7C+%5Cvec%7Ba%7D+%7C+%5Ccdot++%7C+%5Cvec%7Bb%7D+%7C%3E+0) ,通过三角函数可知:当 ![](https://www.zhihu.com/equation?tex=0+%5Cleqslant+%5Ctheta+%3C+%5Cfrac%7B%5Cpi%7D%7B2%7D) , ![](https://www.zhihu.com/equation?tex=cos%5Ctheta+%3E+0) ,因此点积的值 > 0,当 ![](https://www.zhihu.com/equation?tex=%5Ctheta%3D%5Cfrac%7B%5Cpi%7D%7B2%7D) , ![](https://www.zhihu.com/equation?tex=cos%5Ctheta+%3D+0) ,因此点积的值 = 0,当 ![](https://www.zhihu.com/equation?tex=%5Cfrac%7B%5Cpi%7D%7B2%7D+%3C%5Ctheta++%5Cleqslant+%5Cpi) , ![](https://www.zhihu.com/equation?tex=%5Ccos%5Ctheta%3C0) ,因此点积的值 < 0。 4. 两个向量是否**接近**,夹角越小,即两个向量越接近。通过上面 3 提到的,我们只能通过点积的值来判断夹角是钝角还是锐角还是直角,那么如何只通过点积的值来判断夹角大小呢?那就是我们把**两个向量的单位向量进行点积**。这样就会使 ![](https://www.zhihu.com/equation?tex=%7C+%5Cvec%7Ba%7D+%7C+%5Ccdot+%7C+%5Cvec%7Bb%7D+%7C+%3D+1) ,因此 ![](https://www.zhihu.com/equation?tex=%5Chat%7Ba%7D%5Ccdot+%5Chat%7Bb%7D+%3D+cos%5Ctheta) ,那么当值为 1 时,代表两向量方向正好相同,当值越来越小时,代表两个向量离得越来越远,当值为 -1 时,代表两向量方向正好相反。因此**两个向量的单位向量的点积越接近 1,两个向量越接近**。 这个性质可以应用在**高光**的显示上,当**人眼看向目标的向量**和**光折射的向量**,它们越接近则高光效果越明显。 ### 向量的叉乘(叉积,向量积,外积)(Cross Product) 两个向量的向量积(叉积,叉乘,外积)是一个向量,记作 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%5Ctimes+%5Cvec%7Bb%7D) (或者 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D+%5Cwedge+%5Cvec%7Bb%7D) ) 我们将 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) 和 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D) 的夹角记作 ![](https://www.zhihu.com/equation?tex=%5Ctheta) ,且 ![](https://www.zhihu.com/equation?tex=0%5Cleqslant+%5Ctheta+%5Cleqslant+%5Cpi),那么叉乘得到的向量的模长为: ![](https://www.zhihu.com/equation?tex=%7C+%5Cvec%7Ba%7D+%5Ctimes+%5Cvec%7Bb%7D+%7C+%3D+%7C+%5Cvec%7Ba%7D+%7C+%5Ccdot+%7C+%5Cvec%7Bb%7D+%7C%5Ccdot+sin%5Ctheta) **方向:**与这两个向量所在平面垂直,且遵守**右手螺旋定则**(四指方向代表旋转的方向,右手四指从 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) 转向 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D) 时,大拇指的方向即向量积的方向) ![](https://pic4.zhimg.com/80/v2-f99ea0cc1d55670d07dcd1b694e9cfd3_1440w.png) **用矩阵表示:** ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%5Ctimes+%5Cvec%7Bb%7D+%3D+%5Cbegin%7Bbmatrix%7D+0%26+-z_a%26+y_a%5C%5C+z_a%26+0%26+-x_a+%5C%5C+-y_a+%26+x_a%260+%5Cend%7Bbmatrix%7D%5Cbegin%7Bbmatrix%7D+x_b%5C%5C+y_b+%5C%5C+z_b+%5Cend%7Bbmatrix%7D%3D+%5Cleft+%28+y_%7Ba%7Dz_%7Bb%7D-z_%7Ba%7Dy_%7Bb%7D+%2Cz_%7Ba%7Dx_%7Bb%7D-x_%7Ba%7Dz_%7Bb%7D+%2Cx_%7Ba%7Dy_%7Bb%7D-y_%7Ba%7Dx_%7Bb%7D+%5Cright+%29) 若为二维向量,即 z 的值为 0,因此 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%5Ctimes+%5Cvec%7Bb%7D+%3D%280%2C0%2C+x_%7Ba%7Dy_%7Bb%7D-y_%7Ba%7Dx_%7Bb%7D%29) ,又因为二维没有 z 轴,所以常写作 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%5Ctimes+%5Cvec%7Bb%7D+%3D+x_%7Ba%7Dy_%7Bb%7D-y_%7Ba%7Dx_%7Bb%7D) ,该常量其实就是 ![](https://www.zhihu.com/equation?tex=%7C%5Cvec%7Ba%7D%5Ctimes+%5Cvec%7Bb%7D+%7C) 。 **一些运算律:** ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%5Ctimes+%5Cvec%7Bb%7D+%3D+-%5Cvec%7Bb%7D%5Ctimes+%5Cvec%7Ba%7D) ![](https://www.zhihu.com/equation?tex=%28+k%5Cvec%7Ba%7D+%29%5Ctimes+%5Cvec%7Bb%7D+%3D+k%28+%5Cvec%7Ba%7D%5Ctimes+%5Cvec%7Bb%7D+%29) ![](https://www.zhihu.com/equation?tex=%28+%5Cvec%7Ba%7D+%2B+%5Cvec%7Bb%7D+%29%5Ctimes+%5Cvec%7Bc%7D+%3D%5Cvec%7Ba%7D%5Ctimes+%5Cvec%7Bc%7D+%2B+%5Cvec%7Bb%7D%5Ctimes+%5Cvec%7Bc%7D) **一些性质:** ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%5Ctimes+%5Cvec%7Ba%7D+%3D+%5Cvec%7B0%7D) (因为 sin0 = 0) 若两个向量互相平行,则 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%2F%2F+%5Cvec%7Bb%7D+%5Cleftrightharpoons+%5Cvec%7Ba%7D%5Ctimes+%5Cvec%7Bb%7D+%3D+%5Cvec%7B0%7D) ![](https://www.zhihu.com/equation?tex=%7C+%5Cvec%7Ba%7D+%5Ctimes+%5Cvec%7Bb%7D+%7C) 的值是以 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) 和 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D) 为边的平行四边形的面积,同样的以 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) 和 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D) 为边的三角形的面积自然就是 ![](https://www.zhihu.com/equation?tex=%5Cfrac%7B%7C+%5Cvec%7Ba%7D+%5Ctimes+%5Cvec%7Bb%7D+%7C%7D%7B2%7D) (至于为什么,下面第四点解释) ### 叉乘实际使用场景 1. 建立三维坐标中的坐标系,例如给定一个 x 轴和 y 轴,我们可以通过 x 轴叉积 y 轴来获得 z 轴 * ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bx%7D%5Ctimes+%5Cvec%7By%7D+%3D+%5Cvec%7Bz%7D) * ![](https://www.zhihu.com/equation?tex=%5Cvec%7By%7D%5Ctimes+%5Cvec%7Bx%7D+%3D+-%5Cvec%7Bz%7D) * ![](https://www.zhihu.com/equation?tex=%5Cvec%7By%7D%5Ctimes+%5Cvec%7Bz%7D+%3D+%5Cvec%7Bx%7D) * ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bz%7D%5Ctimes+%5Cvec%7By%7D+%3D+-%5Cvec%7Bx%7D) * ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bz%7D%5Ctimes+%5Cvec%7Bx%7D+%3D+%5Cvec%7By%7D) * ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bx%7D%5Ctimes+%5Cvec%7Bz%7D+%3D+-%5Cvec%7By%7D) 注:若三维坐标系的 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bx%7D%5Ctimes+%5Cvec%7By%7D+%3D+%5Cvec%7Bz%7D) 那么该坐标系即为**右手坐标系**。 2. 判断一个向量在另一个向量的左侧还是右侧。例如我们给定两个向量 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%3D+%282%2C+3%2C+0%29) , ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D%3D+%283%2C+1%2C+0%29) ,我们想知道 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) 在 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D) 的左侧还是右侧,该如何判定? 根据 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) 和 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D) 的值,我们可以看出它俩都在 xy 平面上,根据叉积的性质我们可以知道 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%5Ctimes+%5Cvec%7Bb%7D) 得到的向量一定垂直于 xy 平面(和 z 轴平行或重叠),然后根据右手螺旋法则,若 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D%5Ctimes+%5Cvec%7Bb%7D) 的向量的 z 的值 > 0 ,那么即表示 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) 在 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D) 的右侧,若 z 的值 < 0 ,那么即表示 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Ba%7D) 在 ![](https://www.zhihu.com/equation?tex=%5Cvec%7Bb%7D) 的左侧。 上面的例子我们是从 z 轴的正方向看向负方向,但是若从负方向看向正方向,那么原本在左边就会变成在右边,因此左右关系和我们的观察方向有关。 因此若我们从 z 轴正方向看向负方向,若两个向量组成的平面没有平行于 xy 平面,我们可以先将其投影到 xy 平面上,然后再计算左右。 3. 判断点是否在三角形内部。 ![](https://pic4.zhimg.com/80/v2-62b38976a5c59ae8325d26f4daeac263_1440w.jpg) 其实本质上还是 2 中的思路,例如上图,我们可以利用 ![](https://www.zhihu.com/equation?tex=%5Cvec%7BAP%7D+%5Ctimes+%5Cvec%7BAB%7D) , ![](https://www.zhihu.com/equation?tex=%5Cvec%7BBP%7D+%5Ctimes+%5Cvec%7BBC%7D) , ![](https://www.zhihu.com/equation?tex=%5Cvec%7BCP%7D+%5Ctimes+%5Cvec%7BCA%7D) 来判断 P 点是否在 ![](https://www.zhihu.com/equation?tex=%5Cvec%7BAB%7D) , ![](https://www.zhihu.com/equation?tex=%5Cvec%7BBC%7D) , ![](https://www.zhihu.com/equation?tex=%5Cvec%7BCA%7D) 的左侧,若成立,则 P 点在三角形 ABC 的内部。 同理可以应用到四边形等多边形中,但是必须夹角小于 180 度(如下图,ABC>180,因此 P 点即使在内部,但是却在 ![](https://www.zhihu.com/equation?tex=%5Cvec%7BAB%7D) 的右侧, ![](https://www.zhihu.com/equation?tex=%5Cvec%7BBC%7D) 的左侧)。 ![](https://pic4.zhimg.com/80/v2-2a9c7cd63da29b787331e647893b050b_1440w.png) 这点是**三角形光栅化**的基础,要判断三角形覆盖了哪些像素,那就需要知道这些像素是否在三角形内部,好给这个像素进行着色。 4. 求三角形面积 如下图三角形,CD 长度为 h,AC 长度为 b,AB 长度为 c,AC 和 AB 的夹角为 α 。 ![](https://pic3.zhimg.com/80/v2-3090cb8413febbc2e36d1fa5e370a5de_1440w.jpg) 我们知道其面积为: ![](https://www.zhihu.com/equation?tex=S%3D%5Cfrac%7Bch%7D%7B2%7D) 因为 ![](https://www.zhihu.com/equation?tex=h%3Db%2A%5Csin+%5Calpha) 因此 ![](https://www.zhihu.com/equation?tex=S%3D%5Cfrac%7Bcb%5Csin%5Calpha%7D%7B2%7D) 而 ![](https://www.zhihu.com/equation?tex=cb%5Csin%5Calpha) 正是我们向量 AC 和向量 AB 叉乘结果的模 ![](https://www.zhihu.com/equation?tex=%7C%5Cvec%7BAC%7D+%5Ctimes+%5Cvec%7BAB%7D%7C) 因此 ![](https://www.zhihu.com/equation?tex=S+%3D+%5Cfrac%7B%7C%5Cvec%7BAC%7D+%5Ctimes+%5Cvec%7BAB%7D%7C%7D%7B2%7D) 直线与三角形的重心坐标(Barycentric Coordinates)的推导与应用 矩阵运算与常用矩阵