用Java写个方法,参数为个起始点的坐标,以及两个用于表示坚标的目标点教组(分别表示横坐标和纵坐标) 找到目标点中离起始点最进的点。 样例 起始点:1.1目标点包括:22 3.3 2,3 则最近的点为2,2
时间: 2023-05-29 09:07:12 浏览: 41
以下是一个可能的解法:
```java
public static int[] findNearestPoint(double startX, double startY, double[] targetX, double[] targetY) {
int nearestIndex = -1;
double minDistance = Double.MAX_VALUE;
for (int i = 0; i < targetX.length; i++) {
double distance = Math.sqrt(Math.pow(startX - targetX[i], 2) + Math.pow(startY - targetY[i], 2));
if (distance < minDistance) {
nearestIndex = i;
minDistance = distance;
}
}
if (nearestIndex == -1) {
return null;
} else {
return new int[]{(int) targetX[nearestIndex], (int) targetY[nearestIndex]};
}
}
```
这个方法使用了一个循环来计算起始点与每个目标点之间的距离,并找到距离最近的点。在计算距离时,使用了勾股定理。最后,返回距离最近的点的坐标。
需要注意的是,由于目标点的坐标是用double类型表示的,而题目要求返回int类型的坐标,所以在返回值时需要进行类型转换。同时,如果没有找到距离最近的点,则返回null。