力扣1401. 圆和矩形是否有重叠

用矢量计算:

cpp 复制代码
class Solution {
public:
    bool checkOverlap(int radius, int xCenter, int yCenter, int x1, int y1, int x2, int y2) {
        //矩形中心
        float Tx=(float)(x1+x2)/2;
        float Ty=(float)(y1+y2)/2;
        //强行进行对称操作,只考虑第一象限
        if(xCenter<Tx){
            xCenter=2*Tx-xCenter;
        }
        if(yCenter<Ty){
            yCenter=2*Ty-yCenter;
        }
        //圆心到对角顶点的距离
        int rDTx=xCenter-x2;
        int rDTy=yCenter-y2;
        //四种情况
        if(rDTx>0&&rDTy>0){
            return rDTx*rDTx+rDTy*rDTy<=radius*radius;
        }
        else if(rDTx<=0&&rDTy>0){
            return rDTy<=radius;
        }
        else if(rDTy<=0&&rDTx>0){
            return rDTx<=radius;
        }
        else if(rDTx<=0&&rDTy<=0){
            return true;
        }
        return false;
    }
};
相关推荐
RTC老炮2 小时前
webrtc降噪-PriorSignalModelEstimator类源码分析与算法原理
算法·webrtc
草莓火锅4 小时前
用c++使输入的数字各个位上数字反转得到一个新数
开发语言·c++·算法
散峰而望4 小时前
C/C++输入输出初级(一) (算法竞赛)
c语言·开发语言·c++·算法·github
Kuo-Teng4 小时前
LeetCode 160: Intersection of Two Linked Lists
java·算法·leetcode·职场和发展
fie88894 小时前
基于MATLAB的狼群算法实现
开发语言·算法·matlab
偷偷的卷5 小时前
【算法笔记 11】贪心策略六
笔记·算法
ZPC82105 小时前
FPGA 部署ONNX
人工智能·python·算法·机器人
_w_z_j_5 小时前
爱丽丝的人偶
算法
老前端的功夫6 小时前
Vue2中key的深度解析:Diff算法的性能优化之道
前端·javascript·vue.js·算法·性能优化
yongui478347 小时前
基于深度随机森林(Deep Forest)的分类算法实现
算法·随机森林·分类