JAVA,如何判断点是否在面内?
2010-02-07 11:58
204 查看
首先面也是由一系列的点组成,比如,一个正方形。我们可以把它当成四个坐标点然后直线连接而成。
java.awt.geom.GeneralPath为我们实现的这个画线的功能。
下面用一个简单的例子来画一个面
/**
* 将经纬度点集合转换为GeneralPath对象
*
* @param points 点集合(有序)
*
* @return GeneralPath对象
*/
public static GeneralPath genGeneralPath(ArrayList<Point2D.Double> points) {
GeneralPath path = new GeneralPath();
if (points.size() < 3) {
return null;
}
path.moveTo((float) points.get(0).getX(), (float) points.get(0).getY());
for (Iterator<Point2D.Double> it = points.iterator(); it.hasNext();) {
Point2D.Double point = (Point2D.Double) it.next();
path.lineTo((float) point.getX(), (float) point.getY());
}
path.closePath();
return path;
}
其中。points是一系列坐标点的集合。我们可以用
Point2D.Double point= new Point2D.Double(x,y);生成新的坐标点
moveTo方法:通过移动到指定的坐标在路径中添加点
直接用
lineTo:通过绘制一条从当前坐标到新指定坐标的直线在路径中添加点。
这样每加一个点。我们就用上一个点到这个点画条直线。这样就成功的画好了一个面了。
然后,我们判读点是否在该面中
GeneralPath类的contains方法就可以了。真的非常方便
java.awt.geom.GeneralPath为我们实现的这个画线的功能。
下面用一个简单的例子来画一个面
/**
* 将经纬度点集合转换为GeneralPath对象
*
* @param points 点集合(有序)
*
* @return GeneralPath对象
*/
public static GeneralPath genGeneralPath(ArrayList<Point2D.Double> points) {
GeneralPath path = new GeneralPath();
if (points.size() < 3) {
return null;
}
path.moveTo((float) points.get(0).getX(), (float) points.get(0).getY());
for (Iterator<Point2D.Double> it = points.iterator(); it.hasNext();) {
Point2D.Double point = (Point2D.Double) it.next();
path.lineTo((float) point.getX(), (float) point.getY());
}
path.closePath();
return path;
}
其中。points是一系列坐标点的集合。我们可以用
Point2D.Double point= new Point2D.Double(x,y);生成新的坐标点
moveTo方法:通过移动到指定的坐标在路径中添加点
直接用
lineTo:通过绘制一条从当前坐标到新指定坐标的直线在路径中添加点。
这样每加一个点。我们就用上一个点到这个点画条直线。这样就成功的画好了一个面了。
然后,我们判读点是否在该面中
GeneralPath类的contains方法就可以了。真的非常方便
相关文章推荐
- 摘录:java和sql如何判断数据库是否存在
- Java中的Set接口,了解如何判断是否重复元素。
- java cloneable以及如何判断一个字符串是否为数字。
- Java如何判断socket是否已经断开
- Java如何判断线程池所有任务是否执行完毕
- java如何判断一个linux下的文件是否为链接文件。
- Java程序、JSP以及JavaScript中如何判断某个字符串是否包含某个子串
- JVM如何判断一个Java对象是否可以回收
- Java 如何判断一个时间是否是昨天
- java如何判断char类型是否为空-CSDN论坛-CSDN.NET-中国最大的IT技术社区
- java中如何判断String中的内容是否为数字?
- 【Java】如何高效判断数组中是否包含某个元素?
- Java 如何判断线程池所有任务是否执行完毕
- java中如何判断String中的内容是否为数字?
- java如何判断字符串是否为空的方法
- 在Java中如何高效判断数组中是否包含某个元素
- java如何判断数组中是否包含某元素
- java如何判断字符串是否为空(小知识)
- Java如何判断线程池所有任务是否执行完毕
- 在Java中如何高效判断数组中是否包含某个元素