C++ 判断圆形和矩形是否重叠:代码优化与完善
这段代码没有明确考虑圆心在矩形内部的情况,需要加上这个判断条件:
if (xCenter >= x1 && xCenter <= x2 && yCenter >= y1 && yCenter <= y2) {
return true;
}
完整代码如下:
class Solution {
public:
bool checkOverlap(int radius, int xCenter, int yCenter, int x1, int y1, int x2, int y2) {
if (xCenter >= x1 && xCenter <= x2 && yCenter >= y1 && yCenter <= y2) {
return true;
}
if(x1-xCenter>radius || xCenter-x2>radius ||y1-yCenter>radius || yCenter-y2>radius){
return false;
}else {
return true;
}
}
};
这个代码修正后,能够准确地判断圆形和矩形是否重叠,无论圆心是在矩形内部还是外部。
原文地址: https://www.cveoy.top/t/topic/oUJa 著作权归作者所有。请勿转载和采集!