Java 检查两条有限线是否相交

Java 检查两条有限线是否相交,java,algorithm,geometry,Java,Algorithm,Geometry,我很难找出两条有限线是否相交。我有两条有限线(A,B),(C,D),我需要检查它们是否相交。位置不是必需的,因为如果两条线相交,我将只删除其中一条线。我知道用Java中的Line2D库可以很容易地做到这一点,但我想从头开始 我想用它来创建一个点的地图,尽可能多的线连接不同的点,但我不想要任何交点 谢谢。我建议您先学会如何手工操作。步骤是 找出两条线的方程式 用两个变量求解两个方程组,并确定直线是否相交 如果步骤2给出了解决方案,则确定其是否位于两条线段内 如果您不理解我在这里使用的术语,我建议您

我很难找出两条有限线是否相交。我有两条有限线(A,B),(C,D),我需要检查它们是否相交。位置不是必需的,因为如果两条线相交,我将只删除其中一条线。我知道用Java中的Line2D库可以很容易地做到这一点,但我想从头开始

我想用它来创建一个点的地图,尽可能多的线连接不同的点,但我不想要任何交点


谢谢。

我建议您先学会如何手工操作。步骤是

  • 找出两条线的方程式

  • 用两个变量求解两个方程组,并确定直线是否相交

  • 如果步骤2给出了解决方案,则确定其是否位于两条线段内


  • 如果您不理解我在这里使用的术语,我建议您查找高中代数课本或谷歌以了解更多信息。

    您可以手工完成吗?如果没有,你应该拿起一本代数书,学习在2D中所有(无界)直线相交,除非它们是平行的。假设它们是无界的,计算它们的交点,然后检查它是否在边界内。请注意,没有交点的“具有尽可能多的线的点地图”会生成一个三角剖分,其中最有用的是Delaunay三角剖分