1

このような構造が与えられた場合Bounds

struct Bounds {
  public double xMin;
  public double xMax;
  public double yMin;
  public double yMax;
}

Bounds 2つのABがどのように交差するかを調べようとしています。考えられる結果は次のとおりです。

  • AとBはまったく交差しません
  • AとBは等しい
  • AにはBが完全に含まれています
  • BにはAが完全に含まれています
  • AとBが交差している

私の最初の素朴な試みは、AのポイントがBにいくつあり、BのポイントがAにいくつあるかをテストすることですが、このテストはできるだけ速くする必要があり、おそらくもっと良い方法があります。 。

どうもありがとう !

4

1 に答える 1

3

最初に2D 1Dで試してください。これらの 5 つの可能な結果について、2 つの [x min , x max ] オブジェクトをテストする方法は明らかです。[y min , y max ] についても同じことを行います。次に、2 つの結果を結合します。

  • (交点なし) 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 が交差する)

(これでカバーできると思います。)

于 2011-03-10T12:47:46.897 に答える