《数学》
向量
向量点乘(点积,数量积)
公式:
a·b = a.x * b.x + a.y * a.y = |a||b|cosα
(以二维向量为例,三维向量公式同理)也就是说两个向量的点积等同于两个向量的模(向量的长度)相乘,在乘以两个向量的夹角α的cos值(两个向量的夹角永远是最小的那个夹角,即α<=180)
当我们要求两个向量的夹角的时候,可以先让向量a,b单位化(即让a,b的长度等于1)则
|a||b|cosα = 1 * 1 * cosα = cosα
然后我们利用反三角函数,即可以求出α(也就是两个向量的夹角)
α = arccos(a·b)
(注意向量a,b单位化)向量叉乘(叉积,向量积)
向量的叉乘,即求同时垂直两个向量的向量,即c垂直于a,同时c垂直于b(a与c的夹角为90°,b与c的夹角为90°)
c = a×b = (a.y*b.z - b.y*a.z, b.x*a.z - a.x*b.z, a.x*b.y - b.x*a.y)
以上图为例a(1,0,0), b(0,1,0), c=a×b = (0,0,1)
叉乘的几何意义:
|c| = |a×b| = |a||b|sinα
(α为a,b向量之间的夹角)|c| = a,b向量构成的平行四边形的面积 (如下图所示的平行四边形)
叉乘的拓展:
在一般的常识或者教科书中规定叉乘只有3d才拥有,其实2d也可以拓展出来一个叉乘形式,而且非常有用。
拓展方式:假设有两个2d向量a,b,我们直接把他们视为3d向量,z轴补0,那么这个时候的a,b向量的叉乘结果c:
c.x = 0, c.y = 0, c.z = a.x*b.y - b.x*a.y
这个时候可以吧2d的叉乘值定义为得到一个值,而不是得到一个向量,那么这个值k
k = c.z = a.x*b.y - b.x*a.y
我们可以通过这个k值得到很多有用的性质
a,b向量构成的平行四边形的面积。
如果 k > 0 时,那么a正旋转到b的角度为<180°,如果 k < 0,那么a正旋转到b的角度为>180°,如果k=0 那么a,b向量平行。
ps:正旋转的定义参考 数学基础 —— 旋转(2D 正旋转)
参考
余弦定理
余弦定理,欧氏平面几何学基本定理。余弦定理是描述三角形中三边长度与一个角的余弦值关係的数学定理,是勾股定理在一般三角形情形下的推广,勾股定理是余弦定理的特例。