二维平面内线段非规范相交的判定

非规范相交的集中情况

--它们没有被判定为相交是因为它们在叉乘过程中,都至少有一次叉乘为0.

--但是叉乘为0并不一定就是非规范相交。因为叉乘结果为0表示是某个点在某向量所在的直线上。如下情况也可能使叉积结果为0,尽管它们并不是规范相交或者规范相交。

非规范相交的判定的思路

--某个端点P在另外一条线段P1P2所在直线上

--且该端点P在线段P1P2上

  --即min(P1.x, P2.x) ≤P.x ≤max(P1.x, P2.x)且min(p1.y,p2.y)≤P.y ≤max(p1.y,p2.y)

 

判断顶点在线段上的另外一种方法

--可以用点乘

判断顶点在线段上的另外一种方法

--假设已经知道点P在P1P2所在的直线上

  

--则判断PP1和PP2的点积结果的符号

  --若PP1•PP2<0,则P在P1P2内部

  --若PP1•PP2>0,则P在P1P2外部

  --若PP1•PP2=0,则P在P1或P2重合

  

 

原文地址:https://www.cnblogs.com/yoru/p/2703393.html