可以使用以下代码来判断一个点是否在多边形内:
import java.awt.geom.Path2D;
publicclass Main {
public static boolean isPointInPolygon(double x, double y, double[] polyX, double[] polyY, int numPoints) {
Path2D polygon = new Path2D.Double();
polygon.moveTo(polyX[0], polyY[0]);
for (int i = 1; i < numPoints; i++) {
polygon.lineTo(polyX[i], polyY[i]);
}
polygon.closePath();
return polygon.contains(x, y);
}
public static void main(String[] args) {
double[] polyX = {0, 10, 10, 0};
double[] polyY = {0, 0, 10, 10};
int numPoints = 4;
double x = 5;
double y = 5;
boolean isInPolygon = isPointInPolygon(x, y, polyX, polyY, numPoints);
System.out.println(isInPolygon);
}
}
上面的代码使用了 java.awt.geom.Path2D
类来表示多边形,并使用 contains
方法来判断一个点是否在多边形内。
在上面的代码中,polyX
和 polyY
数组分别表示多边形的顶点的横纵坐标,numPoints
表示多边形的顶点数,x
和 y
分别表示要判断的点的横纵坐标。
在这段代码的主函数中,我们可以看到一个四边形被定义为:顶点坐标为(0,0)、(10,0)、(10,10)和(0,10)的四边形。然后我们判断了坐标为(5,5)的点是否在这个四边形内,最后将结果输出到控制台。
请注意,上面的代码只