Zeichnen Sie anhand der Koordinaten mehrerer Punkte in einer Ebene und des Radius eines Kreises, der jeden Punkt umgibt, Polygone, die die Kreise und die Kanten darstellen, an denen sich die Kreise treffen. Gerade Kanten fallen immer entlang von Kreis-Kreis-Schnittlinien , folgen jedoch möglicherweise nicht der gesamten Länge dieser Linien.
Per mbomb007 ‚s Vorschlag, stellen Sie sich das Verhalten von 2D - Seifenblasen. Das ist technisch falsch, da sich Seifenblasen immer in einem Winkel von 120 ° treffen, um die Energie zu minimieren, während sich diese Kreise in einem beliebigen Winkel treffen können.
Dies ist ein Voronoi-Diagramm abzüglich einer definierten Flächenebene. Danke Andreas . Dies ist eine Verallgemeinerung eines Voronoi-Diagramms, das als Leistungsdiagramm bezeichnet wird .
Beispiele
Bei zwei Punkten und zwei Radien könnte die Ausgabe beispielsweise so aussehen:
Fügen Sie einen weiteren Punkt und Radius hinzu und die Ausgabe könnte folgendermaßen aussehen:
Eingang
Sie können die Eingabe beliebig strukturieren. Bitte posten Sie die Ergebnisse mit den folgenden Eingaben.
Test 1
- x: 10, y: 10, r: 10
- x: 25, y: 12, r: 8
Test 2
- x: 8, y: 10, r: 6
- x: 20, y: 8, r: 4
- x: 18, y: 20, r: 12
Ausgabe
Die Ausgabe sollte grafisch sein und Polygonränder enthalten, es ist jedoch nichts anderes erforderlich. Punkte und Schnittpunkte müssen nicht wie in den Beispielen dargestellt werden.
Einschränkungen
- Innerhalb des Radius eines anderen Kreises existiert kein Punkt.
- Standard Codegolf Regeln.
- Es werden keine Antworten mit Lücken akzeptiert, aber Sie können sich gerne daran erfreuen.