ขั้นแรก เราจะสร้างรูปหลายเหลี่ยมโดยใช้เมธอด mplPath.Path และตรวจสอบว่าจุดที่กำหนดอยู่ในรูปหลายเหลี่ยมหรือไม่ เราจะใช้วิธีนี้ poly_path.contains_point
ขั้นตอน
-
สร้างรายการจุดเพื่อสร้างรูปหลายเหลี่ยม
-
สร้างเส้นทางใหม่ด้วยจุดยอดและรหัสที่กำหนด โดยใช้ mplPath.Path()
-
ตรวจสอบว่าจุด (200, 100) มีอยู่ในรูปหลายเหลี่ยมหรือไม่ โดยใช้เมธอด contain_point() ส่งคืนว่าเส้นทาง (ปิด) มีจุดที่กำหนดหรือไม่ => จริง
-
ตรวจสอบว่าจุด (1200, 1000) มีอยู่ในรูปหลายเหลี่ยมหรือไม่ โดยใช้เมธอด contain_point() ส่งคืนว่าเส้นทาง (ปิด) มีจุดที่กำหนดหรือไม่ => เท็จ
ตัวอย่าง
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