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

public class section
{
   double leftPoint;
   double rightPoint;
}

最佳答案

这是示例代码,向您展示如何执行此操作。我假设这两个部分是(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 Math.max(Math.min(a_from.getX(), a_to.getX()), Math.min(b_from.getX(), b_to.getX()))

关于java - 查找2个部分之间重叠的算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10039889/

10-10 14:23