包含方法似乎不适用于我的多边形内的点

Contains method doesn't seem to work with a point inside my polygon

我正在尝试添加一个功能,让我可以查看某个点是否在多边形内。

这是查看该点是否在我的多边形内的代码片段

int x = 265;
int y = 300;
List<Point> points = new ArrayList<Point>(); 

points.add(new Point(233,155));
points.add(new Point(347,269));
points.add(new Point(136,251));
points.add(new Point(250,366));

Polygon polygon = new Polygon();//java.awt.Polygon

for(Point point : points) {
    polygon.addPoint(point.x, point.y);
}

return polygon.contains(x,y);

如果我的点靠近多边形的左上角,代码似乎可以工作,但是当点位于右下角时,方法包含 will return false。

我的多边形图和问题点:https://www.desmos.com/calculator/tnglrdpivn

知道为什么会这样吗?

此处的关键在于点的排序。尽管一次全部绘制在图表上,但它们看起来像是形成了一个漂亮的多边形,如果您按照将它们添加到多边形的顺序玩点连线游戏,它们会形成一个非常奇怪的形状,重点是确实不包含在多边形中。

如果将最后两个点的顺序颠倒,则连接点多边形正确形成,然后点 包含在多边形中。