dot:点乘
点乘,也叫向量的内积、数量积。求下来的结果是一个数;
向量a . 向量b = | a | | b | cos<a,b> //点乘
Cross:叉乘
叉乘,也叫向量的外积、向量积。求下来的结果是一个向量;
| 向量c | = | 向量a x 向量b | = | a || b | sin<a,b> //叉乘
向量c的方向与a、b所在的平面垂直,且方向要用“右手法则”判断(用右手的四指先表示向量a的方向,然后手指朝着手心的方向摆动到向量b的方向,大拇指所指的方向就是向量c的方向)。
向量的外积不遵守乘法交换律,因为:向量a * 向量b = -向量b * 向量a
例子:
若向量a=(a1,b1,c1),向量b=(a2,b2,c3),
向量a . 向量b = a1a2+b1b2+c1c2 //点乘
向量a x 向量b = |i j k| = (b1c2-b2c1,c1a2-a1c2,a1b2-a2b1) //叉乘
(i、j、k分别为空间中相互垂直的三条坐标轴的单位向量)
Unity3D 点乘和叉乘
Unity 点乘: Vector3.Dot;
Unity 叉乘: Vector3.Cross;
假设有a、b向量;
cos<a , b> 表示a , b组成的余玄值
| a | 表示向量 a 的长度
点乘 a . b = | a | | b | cos<a , b>。如果 a , b 都是单位向量,那么点乘表示 a 在 b 上投影的长度。
所以,可以通过点乘计算 a , b 的夹角。夹角的cos值是m。
可见 m == 0 表示两个向量垂直。m < 0表示2个向量角度 >90度。 m>0 表示2个向量角度 <90度。
叉乘 a*b 得到的是一个新的向量 c ,c 垂直于 a 和 b 组成的面。