Algorithm for joining circles into a polygon
Data Structures & Algorithms practice on Codemia
Step through 300 algorithm problems with animated visualisers that show the data structure changing as the code runs.
Introduction
Joining circles into a polygon is an intriguing geometrical challenge that finds applications in various fields such as computer graphics, computational geometry, and CAD systems. This article explores an algorithmic approach to solving this problem, providing a technical overview with examples, and delving into subtopics to enhance understanding.
Problem Statement
The goal is to construct a polygon that passes through or encircles a given set of circles. Each vertex of this polygon should ideally lie on the circumference of at least one circle. The complexity arises because of the need to determine a valid order and path to connect these circles.
Algorithm Approach
1. Input Specification
- Set of circles, each defined by a center point
(x_i, y_i)and radiusr_i. - Optional: Desired properties of the polygon (e.g., convexity, minimum perimeter).
2. Initial Approach: Voronoi Diagrams and Delaunay Triangulation
One effective method is to utilize Voronoi diagrams and Delaunay triangulation. These structures help in understanding the proximity and adjacency relationships between points (circle centers in this context).
Voronoi Diagram
A Voronoi diagram partitions the plane into regions based on the distance to points in a specific subset of the plane. Each region corresponds to one circle center.
Delaunay Triangulation
Delaunay triangulation is the dual graph of the Voronoi diagram. This triangulation connects points to form triangles such that no circle's center is inside the circumcircle of any triangle. For circles, adjust the basic point-based triangulation to accommodate radii.
3. Algorithm Steps
- Compute Voronoi Diagram:
- Utilize circle centers to compute Voronoi regions.
- Create Delaunay Triangulation:
- Use the Voronoi diagram to inform triangulation, adjusting for circle radii.
- Construct Candidate Polygon Paths:
- Generate initial paths by traversing the edges of the Delaunay triangulation. Consider paths that ensure each vertex lies on a circle, using the intersection points between Delaunay edges and the circle peripheries.
- Verify and Optimize:
- Filter paths maintaining specified polygon properties (e.g., convexity). Optionally use optimization techniques to minimize perimeter or area.
4. Example Application
Consider three circles:
- Circle 1: Center
(0,0), Radius1 - Circle 2: Center
(2,0), Radius1 - Circle 3: Center
(1,2), Radius1
- Voronoi Diagram and Delaunay Triangulation:
- Compute the Voronoi diagram for the centers:
(0,0),(2,0), and(1,2). - Derive the Delaunay triangulation: Form a triangle connecting these centers.
- Path Construction:
- Construct path using circle intersections at midpoints of Delaunay edges.
- Resulting Polygon:
- Verify continuity and make approximations to fit the required polygon form.
Considerations
- Intersection Calculations: The core challenge in constructing the polygon is accurate calculation of intersection points between circles and Delaunay edges. This involves solving equations of circles and lines.
- Line:
- Circle:
- Convexity and Concavity: Ensure paths maintain desired curvature. Utilize cross-product techniques to verify if a turn is concave or convex.
Table: Key Concepts and Definitions
| Concept | Definition |
| Voronoi Diagram | Partition of a plane into regions based on distance to points. |
| Delaunay Triangulation | Triangulation where no point is inside the circumcircle of triangles, adapted for circles. |
| Intersection Point | A point where an edge meets a circle’s circumference, calculated using circle-line equations. |
| Convex Polygon | A polygon where all interior angles are less than 180 degrees, ensuring no indentations. |
Conclusion
Joining circles into a polygon requires careful consideration of geometric properties and a strategic approach to handling computational structures like Voronoi diagrams and Delaunay triangulation. By understanding the relationships between circles' centers and their boundaries, one can form a consistent and coherent polygonal path that meets defined criteria. Further developments may involve enhancing optimization techniques and extending these principles to handle additional constraints and applications.
Related reading
- Algorithm for matching 'noisy' names
- Algorithm for Math.Random
- Algorithm for maximizing coverage of rectangular area with scaling tiles
- Algorithm for maximum non-dominated set
- Algorithm for offsetting edges of 3D triangle mesh
- Algorithm for optimally choosing actions to perform a task
- Algorithm for maze/labyrinth generation with no dead ends?
- Algorithm for merging short lists into a long vector

DSA Fundamentals
Master algorithmic patterns and data structures through hands-on LeetCode-style problems - from arrays and hashing to dynamic programming and advanced graphs.
View the courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
Data Structures & Algorithms practice on Codemia
Step through 300 algorithm problems with animated visualisers that show the data structure changing as the code runs.