向量的基本定义
数学定义
向量就是一个数列,是一个只有大小和方向的一个数学量,和标量不同,标量是一个只有大小的量。向量的记法如下:
行向量:a=
[123]
列向量:a=
⎡⎣⎢123⎤⎦⎥
几何定义
向量是有大小和方向的有向线段。向量和点不同点表示了一个固定的位置然而向量是没有位置的,你画在任何地方都行,因为向量表示它在各个方向上的位移关系。向量的几何表示如下图:
向量的运算
负向量
负向量就是在一个向量的前面加上一个负号。例如:a=
[123]
,它的负向量就是
[−1−2−3]
运算法则
-
[a1a2⋯an]
=
[−a1−a2⋯−an]
几何解释
向量变负,将得到一个和原向量大小相等,方向相反的向量。如下图:
标量与向量的乘法
向量与标量相乘,结果将得到一个与原向量平行,但长度不同或方向相反的向量。
运算法则
将向量中的每个元素和标量相乘。公式如下:
几何解释
按照k的缩放因子进行缩放,如下:
向量的加法和减法
向量相加和相减的前提是两向量维度相同。结果向量的维度和原向量相同。
运算法则
将对应的向量元素相加。公式如下:
减法的操作可以转换为加法: a- b= a+( -b)
几何解释
向量点乘(内积)
运算法则
向量点乘就是对应分量乘积的和,其结果是一个标量:
用连加符号简写为:
a⋅b=∑ni=1aibi
几何解释
一般来说,点乘结果描述了两个向量的“相似”程度,点乘结果越大,两向量越相近。如下图:
点乘等于向量大小与向量夹角的
cos
值的积:
a⋅b=||a||||b||cosθ
向量叉乘(叉积)
运算法则
向量叉乘得到一个向量且不满足交换律,点乘满足交换律。公式如下:
几何解释
(1).叉乘得到的向量垂直于原来的两个向量,如下图:
a×b
的长度等于向量的大小与向量的夹角
sin
值的积,如下:
已经证明了 a×b 垂直于a,b。但是垂直于a,b有两个方向。 a×b 指向哪个方向呢?通过将a的头与b的尾相连,并检测从a到b是顺时针还是逆时针。如果在左手坐标系中,左手四个(除大拇指)指母重贴与a,b向量的方向大拇指指向的方向就是 a×b 垂直的方向。右手坐标的也相同只是使用右手来判断。
(2). ||a×b|| 也等于两向量组成的平行四边形的面积。
向量大小(长度或模)
运算法则
公式如下:
距离公式
同一坐标系中的两个点的距离,实际上可以看作是两个点构成的一个向量,那么两个点的距离就等于此向量的模长。
运算法则
距离
(a,b)=||b−a||=(bx−ax)2+(by−ay)2+(bz−az)2−−−−−−−−−−−−−−−−−−−−−−−−−−−−√
标准化向量
对于许多向量,我们只关心它的方向而不是大小。在这种情况下使用单位向量将会非常方便。单位向量就是大小为1的向量,单位向量也被称之为标准向量或更简洁地称为法线。
运算法则
对于任意非零向量v,都能计算出一个和v方向相同的单位向量
vnorm
。这个过程被称作向量的标准化,要标准化向量,将向量除以他的大小(模)即可。公式如下:
注意:零向量是不能被标准化的,因为除零是没有定义的。
几何解释
如下图:
向量投影
给定两个向量v和n,能将v分解成两个分量:
v||和v⊥
。他们分别平行和垂直于n,并满足
v=v||+v⊥
。一般称平行分量
v||
为v在n上的投影。
运算法则
公式如下:
几何解释
如下图:
总结
向量是用来表示方位和距离的,也就是映射到每个轴的偏移。向量的常规运算有:向量与标量乘法,向量加减法,向量点乘,向量叉乘。
参考文献
[1] Fletcher Dunnlan Parberry. 3D数学基础:图形与游戏开发.北京:清华大学出版社.2005.1.