Étant donné les coordonnées de plusieurs points sur un plan et le rayon d'un cercle entourant chaque point, dessinez des polygones représentant les cercles et les bords où les cercles se rencontrent. Les bords droits tomberont toujours le long des lignes d' intersection cercle-cercle , mais pourraient ne pas suivre toute la longueur de ces lignes.
Selon la suggestion de mbomb007 , imaginez le comportement des bulles de savon 2D. C'est techniquement faux, car les bulles de savon se rencontreraient toujours à 120 ° pour minimiser l'énergie, alors que ces cercles peuvent se rencontrer à n'importe quel angle.
Il s'agit d'un diagramme de Voronoi, moins un plan d'aire défini. Merci Andreas . Il s'agit en fait d'une généralisation d'un diagramme de Voronoi appelé diagramme de puissance .
Exemples
Par exemple, étant donné deux points et deux rayons, la sortie pourrait ressembler à ceci:
Ajoutez un autre point et rayon et la sortie pourrait ressembler à ceci:
Contribution
Vous pouvez structurer l'entrée comme vous le souhaitez. Veuillez publier les résultats avec les entrées suivantes.
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
Production
La sortie doit être graphique et doit inclure des bordures de polygone, mais rien d'autre n'est requis. Les points et les intersections n'ont pas besoin d'être représentés comme ils le sont dans les exemples.
Contraintes
- Aucun point n'existera dans le rayon d'un autre cercle.
- Règles de codegolf standard.
- Aucune réponse avec des failles ne sera acceptée, mais n'hésitez pas à vous amuser avec.