用java写一个函数,输入参数为一个坐标数组,一个框图坐标,框图的类型有左进右出,下进上出,左进上出,左进上不出右不出,下进上不出右不出,下进右出,框图下递增,框图左递增,根据坐标返回是哪种框图
时间: 2024-05-15 13:20:01 浏览: 25
以下是一个可能的实现:
```java
enum BoxType {
LEFT_IN_RIGHT_OUT,
BOTTOM_IN_TOP_OUT,
LEFT_IN_TOP_OUT,
LEFT_IN_TOP_NOT_OUT_RIGHT_NOT_OUT,
BOTTOM_IN_TOP_NOT_OUT_RIGHT_NOT_OUT,
BOTTOM_IN_RIGHT_OUT,
UNKNOWN
}
public static BoxType getBoxType(int[][] coords, int[] boxCoords) {
int minX = boxCoords[0];
int minY = boxCoords[1];
int maxX = boxCoords[2];
int maxY = boxCoords[3];
boolean leftIn = true;
boolean rightOut = true;
boolean bottomIn = true;
boolean topOut = true;
boolean topNotOut = true;
boolean rightNotOut = true;
for (int[] coord : coords) {
int x = coord[0];
int y = coord[1];
if (x < minX) {
leftIn = false;
}
if (x > maxX) {
rightOut = false;
}
if (y < minY) {
bottomIn = false;
}
if (y > maxY) {
topOut = false;
}
if (y >= minY && y <= maxY && x < minX) {
leftIn = false;
rightNotOut = false;
}
if (y >= minY && y <= maxY && x > maxX) {
rightOut = false;
leftIn = false;
}
if (x >= minX && x <= maxX && y < minY) {
bottomIn = false;
topNotOut = false;
}
if (x >= minX && x <= maxX && y > maxY) {
topOut = false;
bottomIn = false;
}
}
if (leftIn && rightOut) {
return BoxType.LEFT_IN_RIGHT_OUT;
} else if (bottomIn && topOut) {
return BoxType.BOTTOM_IN_TOP_OUT;
} else if (leftIn && topOut) {
return BoxType.LEFT_IN_TOP_OUT;
} else if (leftIn && topNotOut && rightNotOut) {
return BoxType.LEFT_IN_TOP_NOT_OUT_RIGHT_NOT_OUT;
} else if (bottomIn && topNotOut && rightNotOut) {
return BoxType.BOTTOM_IN_TOP_NOT_OUT_RIGHT_NOT_OUT;
} else if (bottomIn && rightOut) {
return BoxType.BOTTOM_IN_RIGHT_OUT;
} else {
return BoxType.UNKNOWN;
}
}
```
这个函数接受一个二维数组 `coords` 表示所有的坐标,和一个一维数组 `boxCoords` 表示框图的坐标。然后遍历所有坐标,根据坐标与框图的相对位置,更新可能的框图类型。最后根据更新的结果返回最终的框图类型。
这个实现可能还有一些缺陷,具体取决于题目定义的严格程度和实际使用的场景。
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![text/x-java](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)