axiolid-constraint2d
Apollonius and tangent-circle constructions: circles tangent to three points, lines or circles in any combination.
| Latest release | 0.1.0 (2026-10-02) |
| crates.io | axiolid-constraint2d |
| Layer | algorithms (algorithm.planar) |
| API documentation | rustdoc · docs.rs |
| Source | crates/algorithms/planar/constraint2d/ |
Overview
Apollonius and tangent-circle constructions (#159, ledger row B14): every circle tangent to three given points, lines or circles, in any combination, with every real solution returned rather than the first one found. Degenerate configurations -- three coincident objects, all-parallel lines with no enclosing circle, an unsolvable sign branch -- are refused by name, never silently dropped.
Depends on
Changes
Latest release, 0.1.0 (2026-10-02):
Added
tangent_circles(#159, ledger row B14): every circle tangent to three given points, lines or circles, in any combination (Apollonius' problem and its degenerate cases), returning every real solution. Each of the three constraints may independently require internal or external tangency for a circle constraint, or either side for a line constraint, enumerated as sign choices; solutions are deduplicated and sorted for a deterministic order. Refused by name: non-finite input, a non-positive circle radius, a zero line direction, and a configuration whose elimination system is singular for every sign choice (three coincident or otherwise inseparable constraints).
Full history: crates/algorithms/planar/constraint2d/CHANGELOG.md