加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 查找一个圆圈是否在另一个圆圈内

发布时间:2020-12-14 05:18:52 所属栏目:Java 来源:网络整理
导读:我有点麻烦我有一个任务,要求我找到一个第二个圆是否重叠,内部或第二个圈子.但是,我无法检查重叠,如果第二个圆圈在第一个圆圈内. (使用的变量是x1,x2,y1,y2,r1,r2,distance) 这是我有的: if (distance (r1 + r2)) { // No overlap System.out.println("Circ
我有点麻烦我有一个任务,要求我找到一个第二个圆是否重叠,内部或第二个圈子.但是,我无法检查重叠,如果第二个圆圈在第一个圆圈内.

(使用的变量是x1,x2,y1,y2,r1,r2,distance)

这是我有的:

if (distance > (r1 + r2)) {
        // No overlap
        System.out.println("Circle2 does not overlap Circle1");
    } else if (distance <= Math.abs(r1 + r2)) {
        // Overlap
        System.out.println("Circle2 overlaps Circle1");
    } else if ((distance <= Math.abs(r1 - r2)) {
        // Inside
        System.out.println("Circle2 is inside Circle1");
}

我担心的问题是重叠和内部检查,但我无法弄清楚如何正确设置它,所以我可以可靠地检查第二个圆是否在第一个.

任何帮助或建议将不胜感激,因为我尝试了多种方法,但解决方案只是逃避我每次.

解决方法

您只需在重叠之前检查内部的距离,则内部的距离为< =重叠距离
if (distance > (r1 + r2)) 
{
    // No overlap
    System.out.println("Circle2 does not overlap Circle1");
}
else if ((distance <= Math.abs(r1 - r2)) 
{
    // Inside
    System.out.println("Circle2 is inside Circle1");
}
else              // if (distance <= r1 + r2)
{
   // Overlap
   System.out.println("Circle2 overlaps Circle1");
}

根据Chris的意见修改答案

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读