這是你的家庭任務,這是你應該實現它的人。這就是爲什麼讓我展示這個想法。如果{x1, y1, r1}
是第一圈和{x2, y2, r2}
然後
if ((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2) == (r1 + r2) * (r1 + r2))
// circles touch from outside
else if ((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2) == (r1 - r2) * (r1 - r2))
// circles touch from inside
else if ((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2) > (r1 + r2) * (r1 + r2))
// circles don't cross, they are separated
else if ((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2) < (r1 - r2) * (r1 - r2))
// circles don't cross, one circle is within the other
if (r1 < r2)
// 1st circle is inside 2nd
else
// 2nd circle is inside 1st
else
// circles intersect
第二個在你的測試用例
x1 = 100
y1 = 200
r1 = 80
x2 = 200
y2 = 100
r2 = 70
的計算表明,
(x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2) ==
(100 - 200) * (100 - 200) + (200 - 100) * (200 - 100) ==
20000
(r1 + r2) * (r1 + r2) ==
(70 + 80) * (70 + 80) ==
22500
(r1 - r2) * (r1 -r2) ==
10 * 10 ==
100
我們圓相交情況下
那麼最新的問題?只是要求代碼不會給你任何幫助,因爲它是無關緊要的。向我們展示您所寫的代碼以及您的問題。 – Paul
我不知道如何編寫代碼@Paul – xelded
將問題分解成更小的部分。例如。讀取用戶的座標/半徑,計算兩點中心的距離,最後將距離與半徑進行比較。 – Paul