首页 > 代码库 > 向量的点乘和叉乘

向量的点乘和叉乘

【点乘】

在数学中,数量积(dot product; scalar product,也称为点积)是接受在实数R上的两个向量并返回一个实数值标量的二元运算。它是欧几里得空间的标准内积。

代数定义

设二维空间内有两个向量技术分享 和技术分享 定义它们的数量积(又叫内积、点积)为以下实数:
技术分享
更一般地,n维向量的内积定义如下:
技术分享

几何定义

设二维空间内有两个向量 技术分享和 技术分享 ,它们的夹角为技术分享 ,则内积定义为以下实数:
技术分享
该定义只对二维和三维空间有效。

点积的值

u的大小、v的大小、u,v夹角的余弦。在u,v非零的前提下,点积如果为负,则u,v形成的角大于90度;如果为零,那么u,v垂直;如果为正,那么u,v形成的角为锐角。
两个单位向量的点积得到两个向量的夹角的cos值,通过它可以知道两个向量的相似性,利用点积可判断一个多边形是否面向摄像机还是背向摄像机。
向量的点积与它们夹角的余弦成正比,因此在聚光灯的效果计算中,可以根据点积来得到光照效果,如果点积越大,说明夹角越小,则物理离光照的轴线越近,光照越强。
 

运算律

交换律: 技术分享
分配律: 技术分享
结合律: 技术分享,其中m是实数。
技术分享
 
 
【叉乘】
向量积,数学中又称外积、叉积,物理中称矢积、叉乘,是一种在向量空间中向量的二元运算。与点积不同,它的运算结果是一个向量而不是一个标量。并且两个向量的叉积与这两个向量和垂直。

表示方法

两个向量a和b的叉积写作a×b(有时也被写成a∧b,避免和字母x混淆)。

定义

向量积可以被定义为:
模长:(在这里θ表示两向量之间的夹角(共起点的前提下)(0° ≤ θ ≤ 180°),它位于这两个矢量所定义的平面上。)
技术分享
方向:a向量与b向量的向量积的方向与这两个向量所在平面垂直,且遵守右手定则。(一个简单的确定满足“右手定则”的结果向量的方向的方法是这样的:若坐标系是满足右手定则的,当右手的四指从a以不超过180度的转角转向b时,竖起的大拇指指向是c的方向。)
也可以这样定义(等效):
向量积|c|=|a×b|=|a| |b|sin<a,b>
即c的长度在数值上等于以a,b,夹角为θ组成的平行四边形的面积。
而c的方向垂直于a与b所决定的平面,c的指向按右手定则从a转向b来确定。
*运算结果c是一个伪向量。这是因为在不同的坐标系中c可能不同。

性质

几何意义及其运用

叉积的长度 |a×b| 可以解释成这两个叉乘向量a,b共起点时,所构成平行四边形的面积。据此有:
技术分享
混合积 [a b c] = (a×b)·c可以得到以a,b,c为棱的平行六面体的体积。

代数规则

反交换律:
a×b= -b×a
加法的分配律:
a× (b+c) =a×b+a×c
与标量乘法兼容:
(ra) ×b=a× (rb) = r(a×b)
不满足结合律,但满足雅可比恒等式:
a× (b×c) +b× (c×a) +c× (a×b) =0
分配律,线性性和雅可比恒等式别表明:具有向量加法和叉积的 R3 构成了一个李代数。
两个非零向量a和b平行,当且仅当a×b=0

拉格朗日公式

这是一个著名的公式,而且非常有用:
a×(b×c)=b(a·c) -c(a·b),
证明过程如下:
技术分享
二重向量叉乘化简公式及证明
可以简单地记成“BAC - CAB”。这个公式在物理上简化向量运算非常有效。需要注意的是,这个公式对微分算子不成立。
这里给出一个和梯度相关的一个情形:
这是一个霍奇拉普拉斯算子的霍奇分解 的特殊情形。
另一个有用的拉格朗日恒等式是:
这是一个在四元数代数中范数乘法 | vw | = | v | | w | 的特殊情形。
 

应用

在物理学光学和计算机图形学中,叉积被用于求物体光照相关问题。
求解光照的核心在于求出物体表面法线,而叉积运算保证了只要已知物体表面的两个非平行矢量(或者不在同一直线的三个点),就可依靠叉积求得法线。

向量的点乘和叉乘