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

Cách nhanh nhất để kiểm tra xem một điểm có nằm trong một đa giác trong Python không?

Đầu tiên, chúng tôi sẽ tạo một đa giác bằng phương thức mplPath.Path và để kiểm tra xem một điểm đã cho có nằm trong đa giác hay không, chúng tôi sẽ sử dụng phương thức, poly_path.contains_point.

Các bước

  • Tạo danh sách các điểm để tạo đa giác.

  • Tạo một đường dẫn mới với các đỉnh và mã đã cho, sử dụng mplPath.Path ().

  • Kiểm tra xem điểm (200, 100) có tồn tại trong đa giác hay không bằng cách sử dụng phương thức contains_point (). Trả về liệu đường dẫn (đã đóng) có chứa điểm đã cho hay không. => Đúng

  • Kiểm tra xem điểm (1200, 1000) có tồn tại trong đa giác hay không bằng cách sử dụng phương thức contains_point (). Trả về liệu đường dẫn (đã đóng) có chứa điểm đã cho hay không. => Sai

Ví dụ

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

Đầu ra

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