我正在试图找到一个计算中心坐标和覆盖两个较小圆圈的最小圆圈半径的算法。我知道两个较小圆的中心的半径和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