Unity中的数学基础(二)——向量

一:概念

——向量也称为矢量,是具有大小和方向的量(零向量比较特殊,是唯一一个大小为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


发布了169 篇原创文章 · 获赞 370 · 访问量 32万+

猜你喜欢

转载自blog.csdn.net/LLLLL__/article/details/105291241
今日推荐