Java Alogritm用于查找两个截面之间的重叠

Java Alogritm用于查找两个截面之间的重叠,java,Java,我有2个部分,每个部分包含2个点,每个点有X和Y。 找到这两个部分之间重叠的最佳方法是什么?(仅在此处相关的X上) 下面是示例代码,向您展示如何执行此操作。我假设这两个部分是(a_from,a_to)和(b_from,b_to),并将结果部分设置为(res_from,res_to)。此外,我只相交于x轴上的间隔,因为这似乎是你想要的。其思想是,结果从两个开始中的较晚者开始,并在两个结束中的较早者结束 Point a_from, a_to; Point b_from, b_to; Point re

我有2个部分,每个部分包含2个点,每个点有X和Y。 找到这两个部分之间重叠的最佳方法是什么?(仅在此处相关的X上)


下面是示例代码,向您展示如何执行此操作。我假设这两个部分是(a_from,a_to)和(b_from,b_to),并将结果部分设置为(res_from,res_to)。此外,我只相交于x轴上的间隔,因为这似乎是你想要的。其思想是,结果从两个开始中的较晚者开始,并在两个结束中的较早者结束

Point a_from, a_to;
Point b_from, b_to;
Point res_from =  new Point();
Point res_to =  new Point();
res_from.SetX(Math.max(a_from.getX(), b_from.getX()));
res_to.SetX(Math.min(a_to.getX(), b_to.getX()));
请注意,如果res_to.x
在这里,我还假设a_from.x这里有一个示例代码,向您展示了如何做。我假设这两个部分是(a_from,a_to)和(b_from,b_to),并将结果部分设置为(res_from,res_to)。此外,我只相交于x轴上的间隔,因为这似乎是你想要的。其思想是,结果从两个开始中的较晚者开始,并在两个结束中的较早者结束

Point a_from, a_to;
Point b_from, b_to;
Point res_from =  new Point();
Point res_to =  new Point();
res_from.SetX(Math.max(a_from.getX(), b_from.getX()));
res_to.SetX(Math.min(a_to.getX(), b_to.getX()));
请注意,如果res_to.x
这里我还假设a_from.x矩形类没有用于此的方法吗?
如果您创建了两个矩形(大小和位置与这些“部分”相同),您可以使用
intersection()
什么将返回重叠区域的矩形来比较它们。

rectangle类没有相应的方法吗?
如果创建两个矩形(大小和位置与“截面”类似),可以使用
intersection()
返回重叠区域矩形的内容对其进行比较。

如果定义截面类,我将提供更接近您需要的答案。我还可以假设两个截面的x坐标都是非递减的吗?如果您定义截面类别,我将提供更接近您需要的答案。我还可以假设两个截面的x坐标是非递减的吗?例如:
rectangle1.交点(rectangle2)类似:
矩形1.交点(矩形2)我怀疑,但在OOP中,您始终可以拥有自定义的类/对象!为什么要使用
s,而不是矩形?你想干什么?我的家。。。。我只想找到一种方法来找到两个截面之间的重叠(如果有),那么为什么不创建矩形和截面,或者使用izomorphius给出的解决方案呢?问题出在哪里?我怀疑,但在OOP中,您始终可以拥有自定义的类/对象!为什么要使用
s,而不是矩形?你想干什么?我的家。。。。我只想找到一种方法来找到两个截面之间的重叠(如果有),那么为什么不创建矩形和截面,或者使用izomorphius给出的解决方案呢?有什么问题吗?