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

Python에서 두 개의 직사각형 겹침 여부를 확인하는 프로그램

<시간/>

네 개의 요소 [x1, y1, x2, y2]가 있는 목록으로 표시되는 직사각형이 있다고 가정합니다. 여기서 (x1, y1)은 왼쪽 아래 모서리의 좌표이고 (x2, y2)는 다음 좌표입니다. itstop-오른쪽 모서리. 교차 영역이 양수일 때 두 개의 직사각형이 겹칩니다. 따라서 모서리나 가장자리에서만 닿는 두 개의 직사각형은 겹치지 않습니다.

따라서 입력이 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 solve(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.solve([0,0,3,3],[1,1,4,4]))

입력

[0,0,3,3],[1,1,4,4]

출력

True