Algorithm 边界交点

Algorithm 边界交点,algorithm,2d,intersection,bounds,intersect,Algorithm,2d,Intersection,Bounds,Intersect,给定如下的边界结构: struct Bounds { public double xMin; public double xMax; public double yMin; public double yMax; } 我试图找出两个边界A和B是如何相交的。可能的结果是: A和B根本不相交 A和B相等 A完全包含B B完全包含A A和B相互交叉 我的第一个天真的尝试是测试A的多少个点在B中,B的多少个点在A中,但是我需要这个测试尽可能快,可能有更好的方法来做 非常感谢 先在2

给定如下的
边界
结构:

struct Bounds {
  public double xMin;
  public double xMax;
  public double yMin;
  public double yMax;
}
我试图找出两个
边界
A和B是如何相交的。可能的结果是:

  • A和B根本不相交
  • A和B相等
  • A完全包含B
  • B完全包含A
  • A和B相互交叉
我的第一个天真的尝试是测试A的多少个点在B中,B的多少个点在A中,但是我需要这个测试尽可能快,可能有更好的方法来做

非常感谢

先在2D和1D中尝试。应该清楚如何测试两个[xmin,xmax]对象以获得这五种可能的结果。然后对[ymin,ymax]执行相同的操作。然后将这两个结果结合起来:

  • (无交叉点)x+(任何东西)y=(无交叉点)
  • (等于)x+(某物)y=(某物)
  • (A包含B)x+(A包含B)y=(A包含B)
  • (A包含B)x+(A和B相交)y=(A和B相交)
  • (A包含B)x+(B包含A)y=(A和B相交)

(我想这就够了。)

总共16张支票(如果有的话)应该简单快捷,看起来像是重复的@Nicolas Repiquet:[facepalm]谢谢。