Wie der Titel sagt, Ich habe 3 Kreis .
Jeder hat einen anderen Radius . Ich kenne den Radius jedes Kreises.
Kenne auch die Mittelpunkte jedes Kreises.
Jetzt muss ich wissen, wie ich den Schnittpunkt von drei Kreisen programmatisch berechnen kann, gibt es irgendeine Formel oder etwas?
Es kann wie folgt aussehen:
Sie können Hilfe von diesem C-Code erhalten. JAVA zu portieren sollte keine Herausforderung sein. Erklärung ist hier . Suchen Sie nach / blättern Sie zu: Schnittpunkt zweier Kreise
Suchen Sie mit dieser Methode nach dem Schnittpunkt zweier beliebiger Kreise. Sagen wir (x,y)
. Jetzt schneidet der dritte Kreis den Punkt x,y
nur dann, wenn der Abstand zwischen seinem center
und dem Punkt x,y
gleich r
ist.
case 1)
Wenn distance(center,point) == r
, dann ist x,y
der Schnittpunkt.
case 2)
Wenn distance(center,point) != r
, dann existiert kein solcher Punkt.
Code (portiert von [hier! alle Credits des ursprünglichen Autors):
%Vor%Rufen Sie diese Methode wie folgt auf:
%Vor% Definieren Sie auch EPSILON
auf einen kleinen Wert, der für Ihre Anwendungsanforderungen akzeptabel ist
Hinweis: Vielleicht sollte jemand testen und überprüfen, ob die Ergebnisse korrekt sind. Ich kann keinen einfachen Weg finden, dies zu tun. Arbeitet für die grundlegenden Fälle, die ich versucht habe
Sie können die folgende Bedingung verwenden:
%Vor%wo x und y - Koordinaten Ihres Punktes, x0 und y0 - Koordinaten des Mittelpunkts des Kreises, R - Radius des Kreises, ^ 2 - Quadrieren. Wenn die Bedingung erfüllt ist, befindet sich der Punkt innerhalb (oder am Umfang bei Gleichheit der linken und rechten Teile). Wenn nicht, ist der Punkt außerhalb des Kreises.
%Vor%