向量叉乘判断两向量之间是顺时针还是逆时针

转自http://blog.163.com/shiliping_007/blog/static/25772011201071744031933/

向量积 a x b = (^n) * |a| * |b| * sin<a, b>, 其中^n是同时垂直于a/b且符合右手定则的单位向量。
若已知向量a = (ax, ay, az), b = (bx, by, bz); 
则 a x b = (ay * bz - by * az, az * bx - ax * bz, ax * by - ay * bx);
可以把i, j, k和a,b的坐标分别循环写成一行如下:
i   ~~~~   j   ~~~~ k   ~~~~   i   ~~~~ j ...
ax   ~~   ay   ~~~ az ~~~~ ax ~~~~ ay ...
bx   ~~   by   ~~~ bz ~~~~ bx ~~~~ by ..
斜向右下方向可以找出三条线分别串起
i-ay-bz, j-az-bx, k-ax-by
斜向左下方向可以找出三条线分别串起
i-az-by, j-ax-bz, k-ay-bx
将每条线中的三个数相乘,(前三条线的和)减去(后三条线的和),就是向量a, b的叉积。
如果向量是二维的(e. g. a =   (ax, by) , b = (bx, by)   ),那么
a x b = ax * by - ay * bx = |a| * |b| * sin<a, b>
可以用来判断两条线段之间的夹角是顺时针还是逆时针的。

posted @ 2013-08-11 12:18  qingsun_ny  阅读(8484)  评论(0编辑  收藏  举报