我有点麻烦。我有一项任务,要求我找出第二个圆圈是重叠的,还是第二个圆圈都是重叠的。但是,如果第二个圆圈在第一个圆圈内,我无法检查重叠。寻找一个圆圈是否在另一个圆圈内
(使用的变量是X1,X2,Y1,Y2,R1,R2,距离)
这是我有:
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");
}
我担心的问题是重叠的和内部的检查,但我无法弄清楚如何正确设置它,以便我可以可靠地检查第二个圆是否在第一个圆内。
任何帮助或建议将不胜感激,因为我尝试了多种方法,但解决方案每次都逃脱我。
首先 - 什么是距离?这是圆圈中心之间的距离吗?其次 - 它可以帮助找出哪个半径更大? – user1118321 2012-02-28 17:17:18
所有变量都由用户输入。是的,距离是距离公式中两个圆的两个中心之间的距离。 – Battleroid 2012-02-28 17:18:35
我只是用Google搜索找到这个问题,发现这个http://gamedev.stackexchange.com/questions/7172/how-to-find-out-if-two-circles-intersect-each-other – Jayy 2012-02-28 17:18:42