计算机中常用的数学知识

时间:2021-06-14 21:58:59

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 组成的面。