Unity3D 中常用的向量运算

Unity3D 中常用的向量运算

那么接下来来看一看在游戏开发过程中常用的一些向量运算

向量的叉积 / 叉乘

叉积的定义(cross product)

   叉积的计算结果依然是一个向量,叉积只能用于3D向量的运算,2D向量没有叉积 。
   通过对两个3D向量 U 和 V  来计算叉积 我们则可以得到一个新的向量 向量 W  
   结果向量 W 同时垂直于 U 与 V 向量

众所周知 在Unity3d 引擎中遵循左手坐标系

左手拇指法则

    抬起左手,将拇指之外的其他四个手指指向 第一个 向量的方向U ,然后朝着V的方向沿角度0< α < Π 
  卷曲手指, 此时拇指所指向的方向即为新的向量 W 的方向。 
//向量叉积的运算
u = (ux,uy,uz)
v=  (vx,vy,vz)
u x v = (uy*vz-uz*vy , uz*vx-ux*vz , ux*vy-uy*vx)

叉积的作用

   1. 可以计算一个平面的 法线(垂直于一个平面的向量)
   2. 可以判断一个物体在你左侧还是右侧

向量的点积(Dot Product)

 定义:
 向量的点积是一个标量  因此有时候 点积又被称之为 标量积(saclar product)

点积的运算

u = (ux,uy,uz)
v=  (vx,vy,vz)
u·v = ux*vx + uy*vy + uz*vz

余弦定理

u·v = |u||v|cos(α)
注意 当我们提到两个向量的夹角的时候 我们指的是最小角 0 < α < Π 
(而且这两个向量必须是共起点)

几何性质

u·v = 0    u 和 v 互相垂直
u·v > 0    u 和 v 的夹角小于90°
u·v < 0    u 和 v 的夹角大于90°

你可能感兴趣的:(Unity3D,unity,算法)