向量积(叉积)及其计算

向量积 a x b = (^n) * |a| * |b| * sin, 其中^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
可以用来判断两条线段之间的夹角是顺时针还是逆时针的。

你可能感兴趣的:(数据结构及算法)