Maison > développement back-end > C++ > Deux rectangles se chevauchent-ils ?

Deux rectangles se chevauchent-ils ?

Patricia Arquette
Libérer: 2024-12-19 20:29:20
original
601 Les gens l'ont consulté

Do Two Rectangles Overlap?

Détermination du chevauchement des rectangles

Dans les scénarios où des rectangles parallèles existent, une tâche cruciale consiste à déterminer s'ils se chevauchent. L'extrait de code fourni tente d'implémenter un algorithme à cet effet, mais il nécessite des précisions supplémentaires.

Pour évaluer efficacement le chevauchement, nous pouvons utiliser les conditions mathématiques suivantes :

if (RectA.Left < RectB.Right && RectA.Right > RectB.Left
    && RectA.Top > RectB.Bottom && RectA.Bottom < RectB.Top)
Copier après la connexion

En coordonnées cartésiennes , cela se traduit par :

if (RectA.X1 < RectB.X2 && RectA.X2 > RectB.X1
    && RectA.Y1 > RectB.Y2 && RectA.Y2 < RectB.Y1)
Copier après la connexion

Analysons cela dans détail :

  • Condition 1 : Si le bord gauche du rectangle A est à gauche du bord droit du rectangle B, alors A n'est pas entièrement à droite de B.
  • Condition 2 : Si le bord droit du rectangle A est à droite du bord gauche du rectangle B, alors A n'est pas entièrement à gauche de B.
  • Condition 3 : Si le bord supérieur du rectangle A est au-dessus du bord inférieur du rectangle B, alors A n'est pas entièrement en dessous de B.
  • Condition 4 : Si le bord inférieur du rectangle A est en dessous du bord supérieur du rectangle B, alors A n'est pas entièrement au-dessus B.

En combinant ces conditions à l'aide des opérateurs AND, nous nous assurons que les quatre conditions sont satisfaites simultanément. Cela établit les critères nécessaires et suffisants pour que deux rectangles se chevauchent.

Remarque : La méthode peut être étendue à des dimensions arbitraires, la rendant applicable à divers cas d'utilisation impliquant des objets non rectangulaires. De plus, en ajustant les opérateurs de comparaison, nous pouvons modifier les conditions pour déterminer des scénarios de chevauchement partiel ou complet selon les besoins.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal