判断点是否在面内(java版2)

import java.awt.geom.GeneralPath;

import java.awt.geom.Point2D;

import java.util.ArrayList;

import java.util.Iterator;

/**

*

*

* 2012-5-25下午4:52:14

*

* 其中。points是一系列坐标点的集合。我们可以用

Point2D.Double point= new Point2D.Double(x,y);生成新的坐标点moveTo方法:通过移动到指定的坐标在路径中添加点

直接用

lineTo:通过绘制一条从当前坐标到新指定坐标的直线在路径中添加点。

这样每加一个点。我们就用上一个点到这个点画条直线。这样就成功的画好了一个面了。

然后,我们判读点是否在该面中

GeneralPath类的contains方法就可以了

*/

public class Test {

/**

* @param points 点集合(有序)

*/

public static GeneralPath

genGeneralPath(ArrayList 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 it = points.iterator(); it.hasNext();) {

Point2D.Double point = (Point2D.Double) it.next();

path.lineTo((float) point.getX(), (float)

point.getY());

}

path.closePath();

return path;

}

public static void main(String[] args) {

Point2D.Double point1= new Point2D.Double(4,9);

相关推荐
相关主题
热门推荐