import java.awt.geom.Point2D;
import java.util.ArrayList;
import java.util.List;
public class Check {
/**
* 返回一个点是否在一个多边形区域内
* @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);
}
public static void main(String[] args){
Point2D.Double p = new Point2D.Double(1,1);
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));
}
}