计算几何与图形学有关的几种常用算法 - chunlieater/chunlifeet GitHub Wiki
点积和叉积:
点积(内积):P1(x1,y1) P2(x2,y2) p1.P2 = x1x2 + y1y2,点积值是|P1|*|P2|*cos(P1,P2),所以如果结果为正,则两个向量夹角为0-90,如果为负则是90-180,如果=0则是90,如果共线则结果是模的乘积,对结果做反余弦就可以得到两个向量的夹角。
叉积(外积):P1(x1,y1) P2(x2,y2) P1xP2 = x1y2 - x2y1,叉积的值是一个垂直于平面P1P2,模等于P1和P2的和原点以及P1P2的和组成的面积的法向量,即|P1xP2| = |P1|*|P2|*sin(P1,P2)。
例子:空间原点为O,有两点P1(x1,y1),P2(x2,y2)判断空间里一个点P在一条线段上。 方法就是,先求出这个线段的向量,P1P2 = OP2-OP1,如果P在P1P2上,那P1P和P1P2的叉积就肯定是0,还有一点要满足,就是P的x应该在x1和x2之间,y在y1和y2之间,也就是P的区间在以P1P2为对角线的长方形上。