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

점이 Python에서 다각형 내부에 있는지 확인하는 가장 빠른 방법은 무엇입니까?

<시간/>

먼저 mplPath.Path 메소드를 사용하여 폴리곤을 생성하고 주어진 포인트가 폴리곤에 있는지 여부를 확인하기 위해 poly_path.contains_point 메소드를 사용할 것입니다.

단계

  • 폴리곤을 만들 포인트 목록을 만드세요.

  • mplPath.Path()를 사용하여 주어진 정점과 코드로 새 경로를 만듭니다.

  • contains_point() 메소드를 사용하여 폴리곤에 point(200, 100)가 존재하는지 확인한다. (닫힌) 경로가 주어진 지점을 포함하는지 여부를 반환합니다. => 사실

  • contains_point() 메소드를 이용하여 폴리곤에 포인트(1200, 1000)가 존재하는지 확인한다. (닫힌) 경로가 주어진 지점을 포함하는지 여부를 반환합니다. => 거짓

예시

import matplotlib.path as mplPath
import numpy as np

poly = [190, 50, 500, 310]
poly_path = mplPath.Path(np.array([[190, 50],
                                    [50, 500],
                                    [500, 310],
                                    [310, 190]]))
point = (200, 100)
print(point, " is in polygon: ", poly_path.contains_point(point))

point = (1200, 1000)
print(point, " is in polygon: ", poly_path.contains_point(point))

출력

(200, 100) is in polygon: True
(1200, 1000) is in polygon: False