ホームページ > バックエンド開発 > C++ > 2つの長方形は重なっていますか?決定論的なアプローチ

2つの長方形は重なっていますか?決定論的なアプローチ

Patricia Arquette
リリース: 2024-12-25 04:12:16
オリジナル
680 人が閲覧しました

Do Two Rectangles Overlap? A Deterministic Approach

長方形の重なりの決定論的検出

目的は、2 つの長方形の位置と位置を定義するさまざまなパラメータが与えられた場合に、2 つの長方形が 2D 平面内で重なっているかどうかを確認することです。寸法。実装は凸包理論に基づいているようですが、その正しさを検証するにはさらなる調査が必要です。

基本的なオーバーラップ アルゴリズム

オーバーラップ検出の直感的な方法には、比較が含まれます。各長方形のエッジの相対位置:

if (
  RectA.Left < RectB.Right &&
  RectA.Right > RectB.Left &&
  RectA.Top > RectB.Bottom &&
  RectA.Bottom < RectB.Top
)
ログイン後にコピー

この条件により、長方形 A の一部は長方形 B の境界の完全に外側にあり、それらが重なっていることを示しています。

条件の説明

明確にするために、条件は次のことをチェックします。

  • A の左端: A の場合左端は B の右端の左側に配置されます。A を B の完全に右に配置することはできません。
  • A の右端: A の右端が B の右に配置されている場合左端、A を B の完全に左側にすることはできません。
  • A の上端: A の上端が
  • A の下端: A の下端が B の上端の下にある場合、A は B の上に完全に置くことはできません。
  • >

要約すると、4 つの条件がすべて満たされると長方形は重なり、いずれかの条件が満たされない場合は重なりません。重なっています。

以上が2つの長方形は重なっていますか?決定論的なアプローチの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート