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