Expand description
A Rust library for creating area-proportional Euler and Venn diagrams.
A fit has two stages:
- Multi-dimensional scaling places fixed-size shapes.
- Numerical optimization refines the shapes against the chosen loss.
§Example
use eunoia::{DiagramSpecBuilder, Fitter, InputType};
use eunoia::geometry::shapes::Circle;
let spec = DiagramSpecBuilder::new()
.set("A", 5.0)
.set("B", 2.0)
.intersection(&["A", "B"], 1.0)
.input_type(InputType::Exclusive)
.build()
.expect("Failed to build diagram specification");
let layout = Fitter::<Circle>::new(&spec).fit().unwrap();Re-exports§
pub use error::DiagramError;pub use fitter::Fitter;pub use fitter::InitialSampler;pub use fitter::Layout;pub use fitter::MdsSolver;pub use fitter::Optimizer;pub use spec::Combination;pub use spec::DiagramSpecBuilder;pub use spec::InputType;pub use venn::VennDiagram;
Modules§
- constants
- Mathematical and numerical constants used throughout the library.
- error
- Error types for diagram operations.
- fitter
- Fitter for creating diagram layouts from specifications.
- geometry
- Geometric primitives and operations.
- loss
- Loss function implementations for diagram fitting.
- plotting
- Polygon-based plotting utilities.
- spec
- Diagram specification and construction.
- venn
- Canonical Venn-diagram layouts.