【发布时间】:2018-11-15 23:17:40
【问题描述】:
我正在尝试添加一个功能,它可以让我查看一个点是否在多边形内。
这是查看点是否在我的多边形内的代码 sn-p
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);
如果我的点更靠近多边形的左上角,代码似乎可以工作,但是当点在右下角时,方法 contains 将返回 false。
我的多边形和相关点的图形:https://www.desmos.com/calculator/tnglrdpivn
知道为什么会这样吗?
【问题讨论】:
-
为了让我们提供帮助,
points和x和y是什么,它们会重现您遇到的问题?还要确保您通过definition of insideness 阅读此实现。 -
如需尽快获得更好的帮助,请发帖minimal reproducible example 或Short, Self Contained, Correct Example。
-
@Krease 应您的要求,我已添加更多信息以使我的问题更清楚,感谢您的意见。
-
现在更清楚了 - 请参阅我的答案。