Einzelnen Beitrag anzeigen

Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
711 Beiträge
 
Delphi XE5 Professional
 
#4

AW: Punkt in der Schnittmenge dreier Kreise

  Alt 8. Jun 2021, 13:33
Hallo Blitzschutz1,
Du brauchst zuerst eine Routine, welche die möglichen Schnittpunkte zweier Kreise bestimmt: Möglich sind 0, 1 oder 2 als Lösung eines Gleichungssystems aus zwei quadratischen Gleichungen:
Code:
(x - x_M1)^2 + (y - y_M1)^2 = R1^2    und   (x - x_M2)^2 + (y - y_M2)^2 = R2^2'
(x_M1, y_M1) und (x_M2, y_M2) sind die Koordinaten der beiden Kreismittelpunkte.
[Edit]: R1 und R2 sind die Radien der beiden Kreise.

Das wiederholst Du 3-mal für alle 3 Kombinationen von Kreispaaren:
K1-K2, K1-K3, K2-K3. Damit kannst Du bis zu 6 Schnittpunkte haben, von denen die richteigen 3 ausgewählt werden müssen.

Die "richtigen" Eckpunkte der möglichen Schnittmenge erfüllen folgende Bedingung:
Der Eckpunkt liegt am Umfang zweier Kreise und innerhalb eines der drei Kreise.

Also brauchst Du noch zwei weitere Routinen um festzustellen, ob ein Punkt am Umfang eines (oder zweier) Kreises liegt, und eine zur Feststellung, ob ein Punkt innerhalb eines Kreises liegt.

Hier muß Du unbedingt aufpassen, daß Du bei Gleitkommazahlen immer einen unscharfen Vergleich mit etwa SameValue(..) machst, sonst funken die immer vorhandenen Rundungsfehler dazwischen und kommt nichts Brauchbares raus.

Viel Erfolg!
Gruß, Andreas
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)

Geändert von Andreas13 ( 8. Jun 2021 um 13:41 Uhr)
  Mit Zitat antworten Zitat