Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带JTS的圆内点_Java_Jts - Fatal编程技术网

Java 带JTS的圆内点

Java 带JTS的圆内点,java,jts,Java,Jts,我已经在一个平面内加载了大量的点,我需要从给定点开始绘制一个圆/椭圆,半径距离以米为单位,然后检查哪些点在圆内 我已经使用within()方法对多边形进行了此操作,但是我无法找到一种不必指定多边形周围的每个点就可以绘制圆/椭圆的方法 有没有办法在JTS上实现这一点,或者我需要另一个java库?您只需验证距点的距离是否小于半径即可。不需要画圆就知道哪些点在里面。对于更快的运行时间,比较距离的平方和半径的平方;这样可以节省不必要的平方根操作 对于椭圆,问题只稍微难一点,涉及二次型x^2+ky^2如果

我已经在一个平面内加载了大量的点,我需要从给定点开始绘制一个圆/椭圆,半径距离以米为单位,然后检查哪些点在圆内

我已经使用within()方法对多边形进行了此操作,但是我无法找到一种不必指定多边形周围的每个点就可以绘制圆/椭圆的方法


有没有办法在JTS上实现这一点,或者我需要另一个java库?

您只需验证距点的距离是否小于半径即可。不需要画圆就知道哪些点在里面。对于更快的运行时间,比较距离的平方和半径的平方;这样可以节省不必要的平方根操作


对于椭圆,问题只稍微难一点,涉及二次型
x^2+ky^2

如果我理解正确,你有半径和中心,因此你可以用jt画一个圆,如下所示:

public static Geometry createCircle(double x, double y, final double RADIUS) {
    GeometricShapeFactory shapeFactory = new GeometricShapeFactory();
    shapeFactory.setNumPoints(32);
    shapeFactory.setCentre(new Coordinate(x, y));
    shapeFactory.setSize(RADIUS * 2);
    return shapeFactory.createCircle();
}

您可以简单地
buffer
将圆心设置为正值,如下所示:

Point centerPoint = ...;
Polygon circle = (Polygon) centerPoint.buffer(0.1);

为什么使用shapeFactory.setNumPoints(32);?你是怎么想出32的?