我正在試圖找到一個計算中心座標和覆蓋兩個較小圓圈的最小圓圈半徑的算法。我知道兩個較小圓的中心的半徑和x,y座標。計算包含兩個較小圓圈的最小圓的中心和半徑
我在下面試過這個算法,它甚至在兩個圓形重疊或相距很遠的時候都可以工作,但只有在circle1和circle2位於同一個x或y軸上時纔有效。
設c1,c2爲圓1和圓2; R上半徑:
if c1x >= c2x:
if c1y >= c2y:
c = ((c1x + c1r) + (c2x - c2r))/2, ((c1y + c1r) + (c2y - c2r))/2
r = max(((c1x + c1r) - (c2x - c2r))/2,
((c1y + c1r) - (c2y - c2r))/2)
elif c1y < c2y:
c = ((c1x + c1r) + (c2x - c2r))/2, ((c2y + c2r) + (c1y - c1r))/2
r = max(((c1x + c1r) - (c2x - c2r))/2,
((c2y + c2r) - (c1y - c1r))/2)
elif if c1x < c2x:
if c1y >= c2y:
c = ((c2x + c2r) + (c1x - c1r))/2, ((c1y + c1r) + (c2y - c2r))/2
r = max(((c2x + c2r) - (c1x - c1r))/2,
((c1y + c1r) - (c2y - c2r))/2)
elif c1y < c2y:
c = ((c2x + c2r) + (c1x - c1r))/2, ((c2y + c2r) + (c1y - c1r))/2
r = max(((c2x + c2r) - (c1x - c1r))/2,
((c2y + c2r) - (c1y - c1r))/2)
@Selcuk不是重複 - 這個問題就簡單多了,只是elementaty幾何 – MBo
較小的圓可具有不同尺寸或他們具有相同的半徑? –
@MBo該問題明確允許 - 僅用於兩個圓圈的算法。 – hlt