判断圆与图形是否相交 力扣算法题

给你一个以 (radiusx_centery_center) 表示的圆和一个与坐标轴平行的矩形 (x1y1x2y2),其中 (x1y1) 是矩形左下角的坐标,(x2y2) 是右上角的坐标。

如果圆和矩形有重叠的部分,请你返回 True ,否则返回 False 。

换句话说,请你检测是否 存在 点 (xi, yi) ,它既在圆上也在矩形上(两者都包括点落在边界上的情况)。

输入:radius = 1, x_center = 0, y_center = 0, x1 = 1, y1 = -1, x2 = 3, y2 = 1
输出:true
解释:圆和矩形有公共点 (1,0) 



public class checkOverLap {

public static void main(String[] args) {
checkOverLap checkOverLap = new checkOverLap();
System.out.println(checkOverLap.souluteTool(1,1,1,1,2,-3,-1));
}


public boolean souluteTool(int radius, int x, int y, int x1, int x2, int y1, int y2) {
// 1. 判断哪一点到圆心最近
double distance = 10 * 10 * 10 * 10;
for (int i = x1; i <= x2; i++) {
for (int k = y1; k <= y2; k++) {
int distance1 = Math.abs(x-i) * Math.abs(x-i) + Math.abs(y-k) * Math.abs(y-k);
double distance2 = Math.sqrt(distance1);

if (distance2<+distance){
distance=distance2;
}
}
}
// 最近的距离如果小于圆的半径 则相交
if(distance<= radius){
return true;
}
return false;


}
}

判断圆与图形是否相交 力扣算法题

上一篇:JavaScript-DOM


下一篇:JavaWeb-03-Servlet-11-多个Servlet之间的数据共享-02HttpSession接口