向量:就是一个数字列表,对程序员而言则是另一种相似的概念--数组。数学上,一个向量就是一个数组。
向量与标量:数学上区分向量和标量。标量是对我们平时所用数字的技术的称谓。使用该术语时,是强调数量值。
向量的维度:向量的维度就是向量包含的“数”的数目。向量可以有任意正数维,当然也包括一维。事实上,标量可以认为是一维向量。
向量分为“:行向量和列向量
位置与位移:位移、速度与距离、速率是完全不同的两种定义。位移和速度是向量,包含方向,而距离和速率是标量,不指明任何方向。
数学中专门研究向量的分支称作线性代数
符号约定:
标量:用斜体的小写罗马或希腊字母表示:如a,b,x,y,z,
向量:用小写黑粗体字母表示:如 a,b,u ,v,q,r,
矩阵:用大写黑粗体表示,如A,B,M,R.
零向量:任何集合,都存在加性单位元X,对集合中任意元素Y,满是Y+X=Y.
零向量是唯一一个没有方向的向量
3D的零向量是[0,0,0]
负向量:对于任意集合,元素X的加性逆元为-X,其与X相加等于加性单元。简单的说就是X+(-X)=0,.
向量大小(长度或模):向量大小也称长度或模
标准化向量:对于许多向量,我们只关心它的方向而不关心其大小。如:“我面向的时什么方向?“,在这样的情况下,使用单位向量将非常方便。单位向量就是大小为1的向量,单位向量经常也被称作标准化向量或跟简单地成为”法线“
向量点乘:向量和标量可以相乘,两个向量也可以相乘,有两种不同类型的向量乘法,第一种为点乘,也称作:内积
另一种向量乘法称作叉乘或叉积。仅可应用 与3D,和点乘不一样,点乘得到一个标量并满足交换律,向量叉乘得到一个向量并且不满足交换律。
a.b=b.a 点乘的交换律
a*b=-(b*a) 叉乘交换律
a*a=0 任意向量与自身的叉乘等于零向量
a*b=(-a)*(-b) 叉乘的操作同时变负得到相同的结果
a*(b+c)=a*b+a*c 叉乘对向量加法的分配率
a*(a*b)=0 叉乘与另一向量的叉乘再点乘该向量本身等于零
3D向量类:
类接口:
存取向量的各分量(X,Y,Z)
向量间的赋值操作
比较两向量是否相同
对向量的操作
将向量置为零向量
向量求负
求向量的模
向量与标量的乘除法
向量的标准化
向量的加减法
计算两点(点用向量表示)间距离
向量点乘
向量叉乘