这段代码没有明确考虑圆心在矩形内部的情况,需要加上这个判断条件:

 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;
        }  
        
    }
};

这个代码修正后,能够准确地判断圆形和矩形是否重叠,无论圆心是在矩形内部还是外部。

C++ 判断圆形和矩形是否重叠:代码优化与完善

原文地址: https://www.cveoy.top/t/topic/oUJa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录