Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 사각형 겹침

<시간/>

목록 [x1, y1, x2, y2]로 표시되는 직사각형이 있다고 가정합니다. 여기서 (x1, y1)은 왼쪽 하단 모서리의 좌표이고 (x2, y2)는 상단의 좌표입니다. 오른쪽 모서리. 이제 교차 영역이 양수이면 두 개의 직사각형이 겹칩니다. 따라서 모서리나 모서리에서만 닿는 두 개의 직사각형이 겹치지 않는다는 것을 이해할 수 있습니다.

두 개의 (축 정렬) 사각형이 있는 경우 겹치는지 여부를 확인해야 합니다.

따라서 입력이 R1 =[0,0,2,2], R2 =[1,1,3,3]과 같으면 출력은 True가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • R1[0]>=R2[2] 또는 R1[2]<=R2[0] 또는 R1[3]<=R2[1] 또는 R1[1]>=R2[3]이면
    • 거짓을 반환
  • 그렇지 않으면
    • 참 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

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]))

입력

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

출력

True