原文链接:http://blog.csdn.net/a57565587/article/details/9500763
判断一个点是否在多边形内(java):
/**
* 返回一个点是否在一个多边形区域内
* @param point
* @param polygon
* @return
*/
private static boolean checkWithJdkGeneralPath(Point2D.Double point, List<Point2D.Double> polygon) {
java.awt.geom.GeneralPath p = new java.awt.geom.GeneralPath();
Point2D.Double first = polygon.get(0);
p.moveTo(first.x, first.y);
polygon.remove(0);
for (Point2D.Double d : polygon) {
p.lineTo(d.x, d.y);
}
p.lineTo(first.x, first.y);
p.closePath();
return p.contains(point);
}
main()主函数内容:
/*Point2D.Double p = new Point2D.Double(0,801);
List<Point2D.Double> polygon = new ArrayList<Point2D.Double>();
polygon.add(new Point2D.Double(0,800));
polygon.add(new Point2D.Double(0,0));
polygon.add(new Point2D.Double(600,0));
polygon.add(new Point2D.Double(600,800));
System.out.println(checkWithJdkGeneralPath(p,polygon));*/