Encuentra si dos rectángulos se superponen

Dados dos rectángulos, encuentre si los dos rectángulos dados se superponen o no.
Tenga en cuenta que un rectángulo se puede representar mediante dos coordenadas, arriba a la izquierda y abajo a la derecha. Así que principalmente nos dan las siguientes cuatro coordenadas. 
l1 : Coordenada superior izquierda del primer rectángulo. 
r1 : Coordenada inferior derecha del primer rectángulo. 
l2 : Coordenada superior izquierda del segundo rectángulo. 
r2 : Coordenada inferior derecha del segundo rectángulo.

rectanglesOverlap

C++

// CPP program for the above approach
#include <bits/stdc++.h>
 
struct Point {
    int x, y;
};
 
// Returns true if two rectangles (l1, r1) and (l2, r2)
// overlap
bool doOverlap(Point l1, Point r1, Point l2, Point r2)
{
    // if rectangle has area 0, no overlap
    if (l1.x == r1.x || l1.y == r1.y || r2.x == l2.x || l2.y == r2.y)
        return false;
   
    // If one rectangle is on left side of other
    if (l1.x > r2.x || l2.x > r1.x)
        return false;
 
    // If one rectangle is above other
    if (r1.y > l2.y || r2.y > l1.y)
        return false;
 
    return true;
}
 
/* Driver program to test above function */
int main()
{
    Point l1 = { 0, 10 }, r1 = { 10, 0 };
    Point l2 = { 5, 5 }, r2 = { 15, 0 };
    if (doOverlap(l1, r1, l2, r2))
        printf("Rectangles Overlap");
    else
        printf("Rectangles Don't Overlap");
    return 0;
}

Java

// Java program to check if rectangles overlap  
class GFG {
 
   static class Point {
 
        int x, y;
    }
 
// Returns true if two rectangles (l1, r1) and (l2, r2) overlap
 static  boolean doOverlap(Point l1, Point r1, Point l2, Point r2) {
        // if rectangle has area 0, no overlap
        if (l1.x == r1.x || l1.y == r1.y || r2.x == l2.x || l2.y == r2.y)
            return false;
     
           // If one rectangle is on left side of other
        if (l1.x > r2.x || l2.x > r1.x) {
            return false;
        }
 
        // If one rectangle is above other
        if (r1.y > l2.y || r2.y > l1.y) {
            return false;
        }
 
        return true;
    }
 
    /* Driver program to test above function */
    public static void main(String[] args) {
        Point l1 = new Point(),r1 = new Point(),
                l2 = new Point(),r2 = new Point();
        l1.x=0;l1.y=10; r1.x=10;r1.y=0;
         l2.x=5;l2.y=5; r2.x=15;r2.y=0;
 
        if (doOverlap(l1, r1, l2, r2)) {
            System.out.println("Rectangles Overlap");
        } else {
            System.out.println("Rectangles Don't Overlap");
        }
    }
}
//this code contributed by PrinciRaj1992

Python3

# Python program to check if rectangles overlap
class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y
 
# Returns true if two rectangles(l1, r1)
# and (l2, r2) overlap
def doOverlap(l1, r1, l2, r2):
     
    # if rectangle has area 0, no overlap
    if (l1.x == r1.x || l1.y == r1.y || r2.x == l2.x || l2.y == r2.y)
        return False
     
    # If one rectangle is on left side of other
    if(l1.x > r2.x or l2.x > r1.x):
        return False
 
    # If one rectangle is above other
    if(r1.y > l2.y or r2.y > l1.y):
        return False
 
    return True
 
# Driver Code
if __name__ == "__main__":
    l1 = Point(0, 10)
    r1 = Point(10, 0)
    l2 = Point(5, 5)
    r2 = Point(15, 0)
 
    if(doOverlap(l1, r1, l2, r2)):
        print("Rectangles Overlap")
    else:
        print("Rectangles Don't Overlap")
 
# This code is contributed by Vivek Kumar Singh

C#

// C# program to check if rectangles overlap
using System;
     
class GFG
{
    class Point
    {
        public int x, y;
    }
 
    // Returns true if two rectangles (l1, r1)
    // and (l2, r2) overlap
    static bool doOverlap(Point l1, Point r1,
                          Point l2, Point r2)
    {
        // if rectangle has area 0, no overlap
        if (l1.x == r1.x || l1.y == r1.y || r2.x == l2.x || l2.y == r2.y)
        {
            return false;
        }
       
        // If one rectangle is on left side of other
        if (l1.x > r2.x || l2.x > r1.x)
        {
            return false;
        }
 
        // If one rectangle is above other
        if (r1.y > l2.y || r2.y > l1.y)
        {
            return false;
        }
        return true;
    }
 
    // Driver Code
    public static void Main()
    {
        Point l1 = new Point(), r1 = new Point(),
                l2 = new Point(), r2 = new Point();
        l1.x = 0;l1.y = 10; r1.x = 10;r1.y = 0;
        l2.x = 5;l2.y = 5; r2.x = 15;r2.y = 0;
        if (doOverlap(l1, r1, l2, r2))
        {
            Console.WriteLine("Rectangles Overlap");
        } else
        {
            Console.WriteLine("Rectangles Don't Overlap");
        }
    }
}
 
// This code is contributed by
// Rajput-Ji

Javascript

<script>
 
// JavaScript program to check if rectangles overlap 
class Point {
 
            constructor(val) {
                this.x = val;
                this.y = val;
            }
        }
 
    // Returns true if two rectangles
    // (l1, r1) and (l2, r2) overlap
    function doOverlap( l1,  r1,  l2,  r2) {
 
        // if rectangle has area 0, no overlap
        if (l1.x == r1.x || l1.y == r1.y || r2.x == l2.x || l2.y == r2.y)
            return false;
     
        // If one rectangle is on left side of other
        if (l1.x > r2.x || l2.x > r1.x) {
            return false;
        }
 
        // If one rectangle is above other
        if (r1.y > l2.y || r2.y > l1.y) {
            return false;
        }
 
        return true;
    }
 
    /* Driver program to test above function */
     
        var l1 = new Point(), r1 = new Point(),
        l2 = new Point(), r2 = new Point();
        l1.x = 0;
        l1.y = 10;
        r1.x = 10;
        r1.y = 0;
        l2.x = 5;
        l2.y = 5;
        r2.x = 15;
        r2.y = 0;
 
        if (doOverlap(l1, r1, l2, r2)) {
            document.write("Rectangles Overlap");
        } else {
            document.write("Rectangles Don't Overlap");
        }
 
// This code contributed by umadevi9616
 
</script>

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *