向量的概念
在数学中,几何向量(也称为欧几里得向量,通常简称向量、矢量),指具有大小(magnitude)和方向(direction)的量。
而在物理学工程中,几何向量更常被称为矢量。许物理量都是矢量,比如一个物体的位移,球撞向墙而对其施加的力等等。与之相对的标,即只有大小而没有方向的量。一些与向量有关的定义亦与物理概念有密切的联系,例如向量势对应于物理中的势能。
向量的模
在游戏中,向量可以表示一个物体所在空间的位置。而这个位置就是该物体与原点位置的偏移量,该偏移量(也就是物体与原点的距离)便可通过向量的模来计算。
向量的模可以通过如下公式来计算:
向量的加减法:
对于我们在实际游戏开发中起到作用的有以下两点:
1.运用向量的加减法求某个物体的距离
2.运用向量的加减法求某个物体的朝向
Vector3.Normalize() 规范化
静态函数; 返回值类型void; 返回向量与原向量方向相同的单位向量,若原向量太小则返回零向量;
Vector3 v1 = this.transform.position.normalized;
Vector3 v2 = Vector3.Normalize(this.transform.position);
v1,v2是等价的。
vector3.magniude向量的长度
返回向量的长度,只有大小,没有方向,返回值类型为float 其实三维空间中的向量长度就是根号下(x*x+y*y+z*z)
Vector3.SqrMagnitude 向量的长度平方
常用于用于向量的比较,因为计算机求平方和开方比较消耗内存和时间。
Vector3.Distance() 距离
返回a和b之间的距离。
参数是两个 Vector3 类型
返回值类型 : float
Vector3.Distance(a,b) 等同于(a-b).magnitude.
Vecter3.Dot 点乘
两个向量的点乘积。 (向量数量积) 点积是一个浮点数的值:两个向量的长度(模)相乘再乘以他们之间夹角的余弦值.(即:|a|*|b|*cos<a,b>)
如果点乘的结果等于0,那么两个向量互相垂直。
如果结果大于0,那么两个向量的夹角小于90度,方向基本相同;
如果结果小于0,那么两个向量的夹角大于90度,方向基本相反。
Vector3.Cross 叉乘
两个向量的交叉乘积(外积)
它的结果是一个矢量。我们通常需要的是它的方向(Vector3.Cross(a.b).normalized)
得到一个分别垂直于这两个向量的向量