向量
标量:有数值大小,没有方向
向量:有数值大小,有方向的矢量,一维,二维,三维
Vector3
位置,代表一个点
transform.position
方向,代表一个方向
transform.forward,transform.up
两点决定一向量
A:Xa,Ya,Za B:Xb,Yb,Zb
从A指向B为AB,B-A=(Xb-Xa,Yb-Ya,Zb-Za)
从B指向A为BA,A-B=(Xa-Xb,Ya-Yb,Za-Zb)
口诀:终点减起点
向量模长
向量长度,向量是由两个点算出,所以向量的模长就是两个点的距离
A(x,y,z),模长 = √ ̄x²+y²+z² = A.magnitude = Vector3.Distance(A,Vector3.zero)
单位向量
模长为1的向量为单位向量
任意一个向量经过归一化就是单位向量
只需要方向,不想让模长影响计算结果时使用单位向量
归一化公式
单位向量:(x/模长,y/模长,z/模长)
Vector3.normalized是一个属性,当前向量保持不变,返回一个新的归一化向量。 Vector3.Normalize是一个方法,此函数将更改当前向量
向量归一化的使用场景
-
碰撞检测:在进行物体与物体之间的碰撞检测时,可以使用归一化的向量来计算碰撞力。
-
相机控制:在控制相机时,可以使用归一化的向量来控制方向和速度。
-
物理引擎:在物理引擎中,可以使用归一化的向量来表示力和速度。
-
动画:在动画中,可以使用归一化的向量来控制物体的方向和旋转。
向量加减乘除
加法
位置+位置 没有意义
向量+向量 两个向量相加得到一个新向量 向量+向量=向量 口诀:向量相加,首尾相连
位置+向量 位置加向量得到一个新位置 口诀:位置+向量相加=平移位置
减法
两个位置相减得到一个新向量 位置-位置=向量 口诀:两点决定一向量,终点-起点
两个向量相减得到一个新向量 向量-向量=向量 口诀:向量相减,头连头,尾指尾 A-B=B头指A头
位置减向量相当于加负向量 位置+(-向量)=位置 口诀:位置减向量=平移位置
向量-位置 没有意义
乘除
向量只会和标量进行乘除法运算
向量A(x,y,z)
标量a
A*a=(xa,ya,za)
A/a=(x/a,y/a,z/a)
总结
向量加减法:主要用于位置平移和向量计算
向量乘除法:主要用于模长放大缩小