您的位置:首页 > 其它

判断一个点是否在多边形区域内

2016-09-08 09:20 225 查看
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));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: