Rectangles qui se chevauchent : une analyse complète
Déterminer si deux rectangles se chevauchent dans un plan bidimensionnel est un problème fondamental en infographie et en informatique géométrie. Dans cet article, nous allons explorer un algorithme efficace pour résoudre ce problème.
Conditions de chevauchement
Deux rectangles, A et B, se chevauchent si et seulement si quatre conditions sont rencontrés :
Algorithme
Sur la base de ces conditions, nous pouvons construire un algorithme pour vérifier le chevauchement :
def check_overlap(RectA, RectB): return RectA.Left < RectB.Right and \ RectA.Right > RectB.Left and \ RectA.Top > RectB.Bottom and \ RectA.Bottom < RectB.Top
Implémentation
Dans votre code C, vous pouvez implémenter cet algorithme comme suit :
#includeclass Rectangle { public: int left, right, top, bottom; }; bool check_overlap(Rectangle rect1, Rectangle rect2) { return rect1.left < rect2.right && \ rect1.right > rect2.left && \ rect1.top > rect2.bottom && \ rect1.bottom < rect2.top ; } int main() { Rectangle rect1, rect2; std::cout << "Enter the coordinates of Rectangle 1 (left, right, top, bottom): "; std::cin >> rect1.left >> rect1.right >> rect1.top >> rect1.bottom; std::cout << "Enter the coordinates of Rectangle 2 (left, right, top, bottom): "; std::cin >> rect2.left >> rect2.right >> rect2.top >> rect2.bottom; if (check_overlap(rect1, rect2)) { std::cout << "The rectangles overlap." << std::endl; } else { std::cout << "The rectangles do not overlap." << std::endl; } return 0; } Cette implémentation demande à l'utilisateur les coordonnées de deux rectangles et vérifie le chevauchement en fonction des conditions susmentionnées.
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!