Geometry 如何根据坐标对确定两者之间是否存在交点?

Geometry 如何根据坐标对确定两者之间是否存在交点?,geometry,Geometry,我有两条线段,由两个x,y坐标表示,如下所示: [(x1,y1),(x2,y2)] //start & end of first line [(x3,y3),(x4,y4)] //start & end of second line 确定这些线是否存在交点的最有效方法是什么?存在交点 ((X3-X1)*(Y2-Y1)-(Y3-Y1)*(X2-X1))*((X4-X1)*(Y2-Y1)-(Y4-Y1)*(X2-X1))取第一条向量/直线和正在检查碰撞的直线的端点形成的三角形,并通

我有两条线段,由两个x,y坐标表示,如下所示:

[(x1,y1),(x2,y2)] //start & end of first line
[(x3,y3),(x4,y4)] //start & end of second line

确定这些线是否存在交点的最有效方法是什么?

存在交点


((X3-X1)*(Y2-Y1)-(Y3-Y1)*(X2-X1))*((X4-X1)*(Y2-Y1)-(Y4-Y1)*(X2-X1))取第一条向量/直线和正在检查碰撞的直线的端点形成的三角形,并通过行列式获取其面积。将其面积与另一个端点形成的三角形面积进行比较。如果它们都是正/负的,则不存在交点。如果它们的符号不同,则可能存在交叉节

如果它们的符号不同,则执行与上述相同的操作,除了使用原始向量的端点而不是直线的端点(以及使用整条直线而不是原始向量)

如果他们的标志不同,那么肯定有一个十字路口,如果他们是相同的,那么就没有十字路口

有用链接: 取三角形的行列式:

评估一个决定因素:

如果有任何不合理的地方,请告诉我