Ich versuche einen Algorithmus zu finden, der die Koordinaten des Mittelpunkts und des Radius des kleinsten Kreises berechnet, der zwei kleinere Kreise abdeckt. Ich kenne den Radius und x, y Koordinaten der Mitte der 2 kleineren Kreise.Berechnen Sie die Mitte und den Radius des kleinsten Kreises, der zwei kleinere Kreise enthält
Ich habe versucht, diesen Algorithmus unten, es funktioniert auch, wenn die beiden Kreise oder weit auseinander überlappen, aber das ist nur, wenn circle1 und circle2 auf dem gleichen x oder y-Achse ist.
Sei c1, c2 Kreis1 und Kreis 2; r Radius:
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 kein Duplikat - diese Frage ist viel einfacher, nur elementaty Geometrie – MBo
können die kleineren Kreise unterschiedliche Größen haben oder haben sie den gleichen Radius haben? –
@MBo Diese Frage erlaubt explizit - und wird mit - Algorithmen für nur zwei Kreise beantwortet. – hlt