Computer >> Máy Tính >  >> Lập trình >> Python

Chồng chéo hình chữ nhật trong Python

Giả sử có một hình chữ nhật được biểu diễn dưới dạng danh sách [x1, y1, x2, y2], trong đó (x1, y1) là tọa độ của góc dưới bên trái của nó và (x2, y2) là tọa độ của đỉnh- góc phải. Bây giờ hai hình chữ nhật chồng lên nhau nếu diện tích giao của chúng là dương. Vì vậy, chúng ta có thể hiểu rằng hai hình chữ nhật chỉ tiếp xúc ở góc hoặc các cạnh không trùng nhau.

Nếu chúng ta có hai hình chữ nhật (theo trục), chúng ta phải kiểm tra xem chúng có trùng nhau hay không.

Vì vậy, nếu đầu vào giống như R1 =[0,0,2,2], R2 =[1,1,3,3], thì đầu ra sẽ là True.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • nếu R1 [0]> =R2 [2] hoặc R1 [2] <=R2 [0] hoặc R1 [3] <=R2 [1] hoặc R1 [1]> =R2 [3], thì
    • trả về Sai
  • nếu không,
    • trả về True

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

class Solution:
   def isRectangleOverlap(self, R1, R2):
      if (R1[0]>=R2[2]) or (R1[2]<=R2[0]) or (R1[3]<=R2[1]) or
         (R1[1]>=R2[3]):
         return False
      else:
   return True
ob = Solution()
print(ob.isRectangleOverlap([0,0,2,2],[1,1,3,3]))

Đầu vào

[0,0,2,2],[1,1,3,3]

Đầu ra

True