Skip to content

axiolid-constraint2d ​

Apollonius and tangent-circle constructions: circles tangent to three points, lines or circles in any combination.

Latest release0.1.0 (2026-10-02)
crates.ioaxiolid-constraint2d
Layeralgorithms (algorithm.planar)
API documentationrustdoc · docs.rs
Sourcecrates/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

Released under the Mozilla Public License 2.0.