Matheseiten-Übersicht
zurück

Kreis(e) an drei Kreise finden

Dieses Programm findet Kreise, die drei gegebene Kreise berühren.
Dazu werden die reellen Lösungen des Gleichungssystems (±r±ri)2 = (x-xi)2 + (y-yi)2 mit 1 ≤ i ≤ 3 bestimmt.

Drei Kreise angeben:   (Koordinaten des Mittelpunkts M(x|y) und Radius r)
 xyr
1. Kreis:  
2. Kreis:
3. Kreis:

   
  

alle berechneten Kreise zeigen    einzeln:

  Auto-Zoom:   alle Kreise komplett    nur einzelnen Berührkreis

immer zeichnen

Alle Punkte dieser Kurven haben jeweils gleiche Abstände vom 1. und 2. Kreis (Kurven in senfgrün) sowie vom 1. und 3. Kreis (Kurven in violett). Die Kurven sind Kegelschnitte (meist Hyperbeln oder Ellipsen). Die Mittelpunkte der berührenden Kreise (durch kleine schwarze Punkte dargestellt) sind stets Schnittpunkte „verschiedenfarbiger“ Kurven. Allerdings sind nicht alle Schnittpunkte Mittelpunkte von Berührkreisen.

 

Java verwenden

 


© Arndt Brünner 7. 8. 2005
Version: 9. 8. 2005

 

Die Aufgabe, einen Kreis zu zeichnen, der drei vorgegebene Kreise berührt, ist alles andere als trivial. Eine geometrische Konstruktion ist mir nicht bekannt. (Wenn sie jemand weiß, bitte mitteilen!) Der Ansatz für die rechnerische Bestimmung von Kreismittelpunkt und -Radius des gesuchten Kreises ist zwar relativ schnell hingeschrieben, die eigentlichen Probleme tauchen dann aber beim Lösen/Berechnen auf — dazu später mehr. Zuerst einige Vorüberlegungen zu sich berührenden Kreisen.

         

Zeichnet man zu einem vorgegebenen Kreis einen weiteren Kreis, der diesen berührt, so stellt man erstens fest, daß die Mittelpunkte und der Berührpunkt stets auf einer Geraden liegen.

Zweitens sieht man, daß der Abstand der Mittelpunkte entweder die Summe der Radien oder deren Differenz ist (je nachdem, ob der kleinere Kreis im ersten liegt oder nicht).

Wenn ein Kreis (mit dem Mittelpunkt M3 und dem Radius r3) zwei andere (mit den Mittelpunkten M1 und M2 sowie den Radien r1 und r2) außen berührt, so hat man die beiden Zusammenhänge r1 + r3 = |M1M3|, und r2 + r3 = |M2M3|.
Das heißt, die Summen der Radien sind jeweils gleich den Entfernungen der Mittelpunkte.
    
   

Nun kann der berührende dritte Kreis allerdings auch so liegen wie in der Abbildung links. Hier gilt noch r2 + r3 = |M2M3|, aber anders als im letzten Fall r3 - r1 = |M1M3|.

Anhand der Abbildungen unten wird ersichtlich, daß es noch weitere Möglichkeiten gibt, den dritten Kreis zu zeichnen. Allgemein kann man die Regel, daß Summe oder Differenzen der Radien gleich dem Abstand der Kreismittelpunkte sein müssen, so formulieren: |r1 ± r2| = |M1M2| oder |r2 ± r1| = |M1M2|.
In einer Gleichung ausgedrückt: |±r1 ± r2| = |M1M2|

Da Abstände zweier Punkte (x1|y1) und (x2|y2) in der Ebene so berechnet werden: √((x2 - x1)2 + (y2 - y1)2), gilt für sich berührende Kreise mit den Mittelpunkten (x1|y1) und (x2|y2) sowie den Radien r1 und r2 allgemein: (±r2 ± r1)2 = (x2 - x1)2 + (y2 - y1)2. An der linken Seite der Gleichung finden die vier geometrischen Fälle ihre Analogie in den vier Möglichkeiten, die Vorzeichen von r1 und r2 zu kombinieren.

   

Es ist klar (siehe Zeichnung rechts), daß man jeweils (wenn der Fall überhaupt möglich ist) unendlich viele Möglichkeiten hat, einen Kreis an zwei gegebene zu zeichnen. Die Mittelpunkte dieser Berührkreise liegen dabei offensichtlich dann nicht auf einer Geraden, wenn die beiden gegebenen Kreise unterschiedliche Radien haben.

Die Koordinaten der Mittelpunkte (x|y) der möglichen Kreise erfüllen hier das Gleichungssystem
  (r + r1)2 = (x1 - x)2 + (y1 - y)2  
(r + r2)2 = (x2 - x)2 + (y2 - y)2

Es handelt sich natürlich nicht um ein lineares Gleichungssystem, denn alle drei Unbestimmten (r, x und y) treten auch in der zweiten Potenz auf. Da das Gleichungssystem unterbestimmt ist (zwei Gleichungen, aber drei Unbekannte), bleibt eine Unbekannte frei. Man kann relativ leicht mit den beiden Gleichungen r eliminieren. Über r = √(x2 - 2x1x + y2 - 2y1y + x12 + y12) (erste Gleichung nach r aufgelöst) kommt man zunächst (durch Einsetzen) auf ((√(x2 - 2x1x + y2 - 2y1y + x12 + y12) - r1) + r2)2 = (x2 - x)2 + (y2 - y)2, dann nach Ausmultiplizieren, Umformen und Quadrieren (um die Wurzel zu beseitigen) auf 4(r1-r2)2(x2-2x1x+y2-2y1y+x12+y12)=(2x(x1-x2)+2y(y1-y2)-r12+2r1r2-r22-x12+x22-y12+y22)2.

Beide Variablen x und y kommen hier höchstens einzeln quadratisch und im gemeinsamen Produkt nur als xy vor. Damit läßt sich die Gleichung in die Form Ax² + By² + Cxy + Dx + Ey + F = 0 bringen, wobei das Bestimmen der Koeffizienten A bis F natürlich einige Schreibarbeit mit sich bringt. Gleichungen dieser Form nennt man auch Quadrik; durch sie können alle Kegelschnitte beschrieben werden. Somit liegen also die Mittelpunkte aller Berührkreise auf einem Kegelschnitt ([Gerade], Hyperbel, Parabel, Ellipse oder Kreis). Wegen der vier Fälle gibt es jeweils zwei Kegelschnitte (mit je zwei Möglichkeiten), auf denen die Mittelpunkte eines Kreises liegen, der zwei vorgegebene berührt.

Soll nun ein Kreis so gezeichnet werden, daß er drei gegebene berührt, so muß sein Mittelpunkt nicht nur auf dem Kegelschnitt liegen, der zu Kreis 1 und Kreis 2 gehört, sondern auch auf demjenigen zu Kreis 1 und 3 (sowie auch dem zu Kreis 2 und Kreis 3, aber das folgt automatisch, wenn er auf beiden anderen liegt). Es muß infolgedessen ein Schnittpunkt der Kegelschnitte gefunden werden.

Das auf dieser Seite laufende Programm berechnet die Kegelschnitte (d.h. Quadriken) zu den Kreisen 1 und 2 sowie zu den Kreisen 1 und 3 und löst das so gewonnene Gleichungssystem
  A1x2 + B1y2 + C1xy + D1x + E1y + F1 = 0  
A2x2 + B2y2 + C2xy + D2x + E2y + F2 = 0
Auch das ist alles andere als trivial, denn die zu lösende Gleichung ist eine Gleichung vierten Grades. Hierzu gibt es zwar eine (ziemlich umständliche) →Lösungsformel, die hier verwendet wird, doch das Finden der Koeffizienten der Gleichung py4 + qy3 + ry2 + sy + t = 0 ist wieder ziemlich aufwendig.