Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 점이 직사각형 내부에 있는지 확인하는 방법

좌하단(bottom-left)과 우상단(top-right) 두 꼭짓점의 좌표로 표현되는 직사각형이 있다고 가정해 보겠습니다. 이때 주어진 점 (x, y)가 이 직사각형 내부에 존재하는지 판별해야 합니다.

예를 들어 bottom_left = (1, 1), top_right = (8, 5), point = (5, 4)가 입력으로 주어지면, 점 (5, 4)는 직사각형 범위 안에 있으므로 출력 결과는 True가 됩니다.

Python으로 점이 직사각형 내부에 있는지 확인하는 방법

문제 해결 접근 방법

이 문제는 간단한 좌표 비교만으로 해결할 수 있습니다. 다음 단계를 따릅니다.

  • solve() 함수를 정의합니다. 이 함수는 bl(좌하단 꼭짓점), tr(우상단 꼭짓점), p(확인할 점) 세 개의 매개변수를 받습니다.
  • 점 p의 x좌표가 bl의 x좌표보다 크고 tr의 x좌표보다 작으며, 동시에 점 p의 y좌표가 bl의 y좌표보다 크고 tr의 y좌표보다 작다면 True를 반환합니다.
  • 위 조건을 만족하지 않으면 False를 반환합니다.

즉, 점의 x좌표와 y좌표가 모두 직사각형의 최소·최대 범위 사이에 있는지만 확인하면 됩니다.

구현 예제

def solve(bl, tr, p):
    if (p[0] > bl[0] and p[0] < tr[0] and p[1] > bl[1] and p[1] < tr[1]):
        return True
    else:
        return False

bottom_left = (1, 1)
top_right = (8, 5)
point = (5, 4)
print(solve(bottom_left, top_right, point))

입력

(1, 1), (8, 5), (5, 4)

출력

True

참고 사항

위 코드는 비교 연산자로 >와 <를 사용했기 때문에 직사각형의 경계선 위에 있는 점은 내부에 포함되지 않는 것으로 판단됩니다. 만약 경계선 위의 점도 내부로 간주하고 싶다면 조건을 >=와 <=로 변경하면 됩니다.