作者:兄弟465748208_279 | 来源:互联网 | 2023-09-10 13:51
什么是向量一个数学列表,表示各个维度上有向位移一个有大小有方向的物理量--大小就是向量的模长。--方向描述了空间中向量的指向。可以表示物体的位置和方向。向量的形式
什么是向量
- 一个数学列表,表示各个维度上有向位移
- 一个有大小有方向的物理量
- --大小就是向量的模长。
- --方向描述了空间中向量的指向。
- 可以表示物体的位置和方向。
向量的形式
向量的大小(模)
- 向量各分量平方和的平方根。
- ·公式:2x²+y²+z²
- API: float dis=vector.magnitude;
- 模的平方vector.sqrMagnitude
- 因为平方根的计算耗时长,所以效率高于magnitude。
void Demo1(){ Vector3 pos = t2.transform.position;//求模长 三种方法 float m01 = Mathf.Sqrt(Mathf.Pow(pos.x, 2) + Mathf.Pow(pos.y, 2) + Mathf.Pow(pos.z, 2));float m02 = pos.magnitude;float m03 = Vector3.Distance(Vector3.zero, pos);Debug.DrawLine(Vector3.zero, t2.transform.position);}
向量的方向
- ·获取向量方向也称“标准化向量”,或“归一化向量”;即获取该向量的单位向量。
- ·单位向量:大小为1的向量。
- 公式:V/|V|
- ·几何意义:将该向量拉长或者缩短,使模长等于1
- .API : Vector3 vector2=vector1.normalized;。
- -- vector2为vector1的单位向量
- -- vector1.Normalize();将vector1自身设置为单位向量
void Demo2(){Vector3 pos = t2.transform.position;//获取向量方向Vector3 n01 = pos / pos.magnitude;Vector3 n02 = pos.normalized;Debug.DrawLine(Vector3.zero, pos);Debug.DrawLine(Vector3.zero, n02,Color.red);}
向量相减
- ·等于各分量相加减
- ·公式:[x₁,y₁,z₁]-[x₂,y₂,z₂]=[x₁-x₂,y₁-y₂,z₁-z₂]
- 几何意义:向量a与向量b相减,结果理解为以b的终点为始点,以a的终点为终点的向量。方向由b指向a。
- ·应用:计算两点之间的距离和相对方向。
- 两条向量相减的结果向量方向指向被减,但是结果向量的起始点是Vector3.zero
void Demo3(){Vector3 relativeDirection = t1.transform.position - t2.transform.position;//方向 指向被减向量(前面的)//大小 两点间距//注意 实际位置要平移到Debug.DrawLine(Vector3.zero, relativeDirection);}
//t3沿着relativeDirection方向移动t3.transform.Translate(relativeDirection.normalized);//relativeDirection.normalized 获取方向,避免两个物体间距对速度造成影响
向量相加
- 等于各分量相加和。
- 公式:[x₁,y₁,z₁] +[x₂,y₂,z₂]=[x₁+x₂,y₁+y₂,z₁+z₂]
- 几何意义:向量a与向量b相加,平移使b的始点与a的终点重合,结果为以a的始点为始点,以b的终点为终点的向量。
- 应用:物体移动
代码与相减同理