21 releases
Uses old Rust 2015
0.1.20 | Apr 10, 2020 |
---|---|
0.1.19 | Apr 24, 2019 |
0.1.18 | Dec 24, 2018 |
0.1.16 | Nov 8, 2018 |
0.1.4 | Jul 18, 2018 |
#1505 in Algorithms
113 downloads per month
Used in michelangelo
155KB
3.5K
SLoC
descartes
descartes is a...
- Error-tolerant 2D geometry engine
- that allows for arbitrary error tolerances
- dealing with both floating-point inaccuracies and much larger user input inaccuracies
With the following primitives:
- line
- circle
- line/circle segment
And the following compound objects:
- Path (continuous concatenation of line/circle segments)
- Shape (Path outline with 0..n Path holes)
- Band (a path with a thickness)
It offers...
- Reexported 2D & 3D Point/Vector operations from
nalgebra
- Projections from and onto lines, circles, segments, paths, bands
- Intersections
- between lines & circles
- between line/circle segments
- between paths
- Axis-aligned bounding boxes for
- line/circle segments
- paths
- Boolean operations between shapes
- Orthogonal offsets of segments
- True Orthogonal offsets of paths (without producing self-intersections)
- A
RoughEq
Trait for comparing things within a tolerance, with implementations forP2, P3
andV2, P3
It internally uses...
- "Thick" primitives for tolerances
descartes is named after René Descartes, the father of analytical geometry.
Dependencies
~7MB
~130K SLoC