一:概念
——向量也称为矢量,是具有大小和方向的量(零向量比较特殊,是唯一一个大小为0并且没有方向的向量)。向量的大小(长度)称为模,长度为1的向量称为单位向量
——书写向量时,水平书写的向量([1,2,3])叫做行向量,垂直书写的向量叫做列向量
二:点与向量的关系
点代表了一个位置,他没有大小和方向的概念。而向量具有大小和方向的概念。Unity中的transform.position代表了一个点,它不具有方向。transform.forward代表了一个向量,它代表了当前物体在世界坐标z轴上的指向。但是他们在Unity中都是通过(x,y,z)来表示的
三:向量的几种关系
——向量AB不等于向量BA,因为方向不同
——向量AB等于负的向量BA,因为方向相同
——向量AB的长度等于向量BA的长度
——向量AB+向量BA=零向量,因为两个向量相反
四:单位向量
长度为1的向量称为单位向量。当我们只关心向量方向,不关心向量大小时,则可以使用单位向量。
普通向量变换为单位向量的过程称为向量归一化
Vector3 A = new Vector3(1, 2, 3);
Vector3 B = new Vector3(2, 4, 5);
Vector3 v = (B - A).normalized;
Debug.Log("AB向量归一化后的坐标:" + v); //AB向量归一化后的坐标:(1/3,2/3,2/3)
五:向量的长度
Vector3 A = new Vector3(1, 2, 3);
Vector3 B = new Vector3(2, 4, 5);
//第一种方法:Vector3.Magnitude,Vector3.SqrMagnitude求出的是长度的平方
float dis = Vector3.Magnitude(B - A);
//第二种方法:Vector3.Distance
//float dis = Vector3.Distance(A, B);
Debug.Log("AB向量的长度:" + dis); //AB向量的长度:3
六:向量的点积(内积)
向量点积后的结果是一个标量
点乘的结果越大,两向量越接近,可以使用点乘来计算两个向量之间的夹角大小
点乘的结果大于0,则两个向量的夹角0<=θ<90
点乘的结果等于0,则两个向量的夹角θ=90,互相垂直
点乘的结果小于0,则两个向量的夹角90<θ<180
七