向量

发布时间 2023-11-07 05:18:21作者: ZERO_BEYOND

向量

标量:有数值大小,没有方向

向量:有数值大小,有方向的矢量,一维,二维,三维

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)

总结

向量加减法:主要用于位置平移和向量计算

向量乘除法:主要用于模长放大缩小