废话不多说,直接进入正题:
判断某点是否在特定区域内,使用 java.awt.geom.GeneralPath 类中的 contains 方法;
该类常用的构造方法:
GeneralPath ( ) 构造一个新的单精度空 GeneralPath 对象
GeneralPath(Shape s) 根据任意 Shape 对象构造一个新 GeneralPath 对象
关于 Shape 接口 想了解的自行查找API,我这里使用 Point2D.Double 实现类来绘制多边形。
具体的代码,这是绘制多边形的:
private boolean contains(Point2D.Double point,
Listpolygon) {
if (null == polygon || polygon.isEmpty()) { // 不存在区域坐标点,无法绘制区域
return false;
} else if (polygon.size() < 3) { // 区域坐标点数小于3, 无法绘制区域
return false;
} else {
GeneralPath p = new GeneralPath();
// 获取坐标区域的第一个点
Point2D.Double first = polygon.get(0);
// 绘图 GeneralPath 路径的开始
p.moveTo(first.x, first.y);
// 第一个点已经绘制完成,remove掉
polygon.remove(0);
for (Point2D.