点のポリゴン内外判定

必要に応じて、様々の言語で作ったことがあります。

しかし、Pythonのsympyを使えば簡単。

from sympy.geometry import Point, Polygon

x = list()
y = list()

px = 0.5
py = 0.5

x.append(0.0)
x.append(1.0)
x.append(1.0)
x.append(0.0)

y.append(0.0)
y.append(0.0)
y.append(1.0)
y.append(1.0)

points = list()
for i,X in enumerate(x):
	p = Point(X, y[i])
	points.append(p)

poly = Polygon(*points)
point = Point(px, py)

print(poly.encloses_point(point))
True

ポリゴンを構成する線上や構成ポイント上はFalseになります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA