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

前端之家收集整理的这篇文章主要介绍了java – 查找一个圆圈是否在另一个圆圈内前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有点麻烦我有一个任务,要求我找到一个第二个圆是否重叠,内部或第二个圈子.但是,我无法检查重叠,如果第二个圆圈在第一个圆圈内.

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

这是我有的:

  1. if (distance > (r1 + r2)) {
  2. // No overlap
  3. System.out.println("Circle2 does not overlap Circle1");
  4. } else if (distance <= Math.abs(r1 + r2)) {
  5. // Overlap
  6. System.out.println("Circle2 overlaps Circle1");
  7. } else if ((distance <= Math.abs(r1 - r2)) {
  8. // Inside
  9. System.out.println("Circle2 is inside Circle1");
  10. }

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

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

解决方法

您只需在重叠之前检查内部的距离,则内部的距离为< =重叠距离
  1. if (distance > (r1 + r2))
  2. {
  3. // No overlap
  4. System.out.println("Circle2 does not overlap Circle1");
  5. }
  6. else if ((distance <= Math.abs(r1 - r2))
  7. {
  8. // Inside
  9. System.out.println("Circle2 is inside Circle1");
  10. }
  11. else // if (distance <= r1 + r2)
  12. {
  13. // Overlap
  14. System.out.println("Circle2 overlaps Circle1");
  15. }

根据Chris的意见修改答案

猜你在找的Java相关文章