必要に応じて、様々の言語で作ったことがあります。
しかし、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になります。