Java 包含方法不';我的多边形中似乎没有一个点

Java 包含方法不';我的多边形中似乎没有一个点,java,2d,awt,polygon,Java,2d,Awt,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(

我试图添加一个函数性,它可以让我看到一个点是否在多边形内

下面是查看点是否在多边形内的代码片段

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);
intx=265;
int y=300;
列表点=新的ArrayList();
增加(新点(233155));
增加(新点(347269));
增加(新点(136251));
增加(新点(250366));
多边形=新多边形()//java.awt.Polygon
用于(点:点){
多边形添加点(点x、点y);
}
返回多边形。包含(x,y);
如果我的点靠近多边形的左上侧,代码似乎可以工作,但是当点位于右下侧时,方法contains将返回false

多边形和相关点的图形:


知道为什么会这样吗?

这里的关键在于你的观点的顺序。虽然在图形上同时绘制,但它们看起来像是形成了一个漂亮的多边形,如果你按将点添加到多边形的顺序将点与它们连接起来,它们会形成一个非常奇怪的形状,而点实际上并不包含在多边形中


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

为了让我们提供帮助,再现您所遇到问题的
点是什么
,以及
x
y
是什么?另外,请确保您阅读了此实现的。要更快获得更好的帮助,请发布或。@Krease根据您的要求,我添加了更多信息以使我的问题更清楚,谢谢您的输入。现在更清楚了-请参阅我的答案。