【发布时间】:2012-02-28 17:13:30
【问题描述】:
我有点麻烦。我有一个任务,要求我找出第二个圆圈是否重叠、在里面,或者两个圆圈都没有。但是,我无法检查重叠以及第二个圆圈是否在第一个圆圈内。
(使用的变量是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");
}
我担心问题出在重叠检查和内部检查上,但我不知道如何正确设置它,因此我可以可靠地检查第二个圆圈是否在第一个圆圈内。
任何帮助或建议将不胜感激,因为我尝试了多种方法,但解决方案每次都让我无法理解。
【问题讨论】:
-
首先 - 什么是距离?是圆心之间的距离吗?第二 - 找出哪个半径更大可能会有所帮助吗?
-
所有变量均由用户输入。是的,距离就是两个圆的两个圆心之间的距离,用距离公式。
-
我刚刚用谷歌搜索了这个问题并找到了这个gamedev.stackexchange.com/questions/7172/…
-
我认为中心之间的距离是关键......以及你做测试的顺序......
-
太棒了,谢谢,这会很有帮助。