向量的点乘和叉乘(转)
原文链接:http://www.cppblog.com/wc250en007/archive/2010/06/07/vector.html
向量:u=(u1,u2,u3) v=(v1,v2,v3)
叉积公式:u x v = { u2v3-v2u3 , u3v1-v3u1 , u1v2-u2v1 }
点积公式:u * v = u1v1+u2v2+u3v33=lul*lvl*COS(U,V)
对于向量的运算,还有两个“乘法”,那就是点乘和叉乘了。点乘的结果就是两个向量的模相乘,然后再与这两个向量的夹角的余弦值相乘。或者说是两个向量的各个分量分别相乘的结果的和。很明显,点乘的结果就是一个数,这个数对我们分析这两个向量的特点很有帮助。如果点乘的结果为0,那么这两个向量互相垂直;如果结果大于0,那么这两个向量的夹角小于90度;如果结果小于0,那么这两个向量的夹角大于90度。对于叉乘,它的运算公式令人头晕,我就不说了,大家看下面的公式自己领悟吧……
向量c的方向与a,b所在的平面垂直,且方向要用“右手法则”判断(用右手的四指先表示向量a的方向,然后手指朝着手心的方向摆动到向量b的方向,大拇指所指的方向就是向量c的方向)。
若向量a=(a1,b1,c1),向量b=(a2,b2,c2),
则
向量a·向量b=a1a2+b1b2+c1c2
向量a×向量b=
| i j k|
|a1 b1 c1|
|a2 b2 c2|
=(b1c2-b2c1,c1a2-a1c2,a1b2-a2b1)
(i、j、k分别为空间中相互垂直的三条坐标轴的单位向量)。
叉乘的意义就是通过两个向量来确定一个新的向量,该向量与前两个向量都垂直