【3D数学】之向量

百般思念 提交于 2020-02-27 05:07:34

向量

向量数学定义

从数学角度来看向量就是一个数字列表,对程序而言则是数组。

数学上区分向量和标量,比如“速度”和“位移”是向量,“速率”和“长度”是标量。

向量可以从维度上区分,向量可以是任意维度的。比较特殊的是标量,可以认为是一维的向量。在图形学中,经常用到的是2维、3维和4维向量。

向量可以表示为行向量和列向量。水平书写的称为行向量,比如[1, 2, 3]。垂直书写的称为列向量,比如。

向量的几何意义

一个二维向量如下图所示。由图可以看出,向量的定义有两个要素——大小和方向。向量的大小就是向量的长度(模),向量的方向描述向量在空间的中的指向。

 

向量所代表的位移可以考虑分解成和坐标轴平行的分量,把分量的位移组合起来就可以得到向量作为整体所代表的位移。如下图所示,向量[1, -3, 4]表示一个位移,可以将此位移想象为向右平移1个单位,向下平移3个单位,向前平移4个单位。这些步骤的执行顺序不重要,不同的顺序会得到同样的位移量。

 

向量和点

“点”用来描述位置,但没有大小和厚度。“向量”描述位移,有大小和方向但没有位置。

对任意的x和y,下图展示了点(x, y)和向量[x, y]之间的关联。可以看出向量[x, y]描述原点到点(x, y)的位移量。

 

虽然向量和点在概念上完全不一样,但在数学上等价。两个点之间的距离为从一个点到另一个点的向量长度(模),向量长度的计算在下面会提到。

向量运算

零向量

任何集合都存在加性单位元x,对任何元素y,满足y+x=y。N维向量集合的加性单位元是n维“零向量”。例如,三维零向量表示为[0, 0, 0]。

零向量非常特殊,它是唯一大小为零的向量,也是唯一没有方向的向量。可以认为零向量表示的是“没有位移”,就像零标量表示的是“没有数量”一样。

负向量

任何集合都存在加性逆元-x,它和x相加等于加性单位元。对向量而言,每个向量v都存在一个加性逆元-v,它的维数和v一样,满足v+(-v)=0。比如,-[x, y] = [-x, -y]。

负向量的几何解释为,向量变负,将得到一个和原向量大小相等,方向相反的向量。

向量的模

向量的大小被称作向量的长度或模。向量的大小就是向量各分量平方和的平方根。比如对于一个三维向量v,模的计算公式为。

标量和向量的乘法

标量和向量的乘法比较直接,将向量的每个分量与标量相乘即可。应用到三维向量,如:。

标量和向量的乘法需要注意以下几点:

l         标量和向量的乘法优先级高于减法和加法。

l         标量不能除以向量,并且向量不能处以另一个向量。

l         负向量能被认为是乘法的特殊情况,即乘以标量-1。

在几何意义上,向量乘以标量k的效果是以因子|k|缩放向量的长度。

向量标准化

对于很多向量,有时我们只关心方向而不关心大小,这时使用单位向量更方便。

对于任何非零向量,都可以计算出一个和v方向相同大小为1的单位向量,这个过程成为向量的标准化。向量v的标准化公式为:。

在几何意义上,二维向量v的单位向量,是以原点为尾,向量的头将接触到圆心在原点的单位圆,如下图所示。同理,三维向量v的单位向量将接触到单位球。

 

向量的加法和减法

如果两个向量维数相等,则他们可以相加和相减。向量的加法和减法运算法则很简单,两个向量对应的分量相加和相减即可。

向量的加法满足交互律,即a+b=b+a。向量的减法不满足交换律。

两个向量a和b相加的几何解释为:平移向量,使向量a的头连接向量b的尾,接着从a的尾向b的头画一个向量c即为a和b相加的结果。二维向量的加法如下图所示。

 

从向量的加法可以解释为什么向量能被解释为与轴平行的位移序列,即:

 

向量点积

向量的点积记作,向量点积就是对应分量乘积的和, 其结果是一个标量。可定义为:,应用到三维向量,。

需要注意的是,它的优先级高于加法和减法,中间的点乘符号不能省略。

在几何意义上,点积结果描述了两个向量的“相似”程度,点积结果越大,两个向量越近。如下图所示,点积等于向量的大小和向量夹角的cos值的积:。

 

给定两个向量v和n,能将v分解为两个向量和,它们分别平行和垂直于n,并满足。其中,由可知。

向量叉积

向量的叉积记作,对于三维向量u和v,其叉积定义为。叉积的优先级高于加法和减法,也高于点积。比如,因为点积返回一个标量,而标量和向量是不能叉乘的。叉积满足反交换律,即。

在几何意义上,叉积得到的向量垂直于原来的两个向量,如下图所示。图中向量a和b在一个平面上,向量指向该平面的正上方,垂直于向量a和b。

 

叉积的长度等于向量的大小和向量夹角的sin值的积,即。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!