* Create node (no implementation) * Resampling - WIP * use bezier::from_linear_dvec2 * Use from anchors instead of Bezier * Tidy up anchor collection & subpath creation * Add Spline from Points node (not implemented) * Add spline from points node implementation * Update resampling * Update minimum density 0.01 -> 1.0 * Add a way to create a custom vector network * Add spline from points node to spline tool * Fix crash when no points * Add anchor method to subpath * Exact start and end point * Fix compile errors from rebase * Fix spline tool * Rename 'Density' to 'Spacing' * Fix transforms * Only close subpaths with >1 anchor * Fix compile * Fix compile error * Fix from points with many subpaths * Fix new_cubic_spline crash with one point * Rename to resample as polyline * Fix div zero * Fix missing file * Fix resample * Rename to resample points --------- Co-authored-by: hypercube <0hypercube@gmail.com> Co-authored-by: Keavon Chambers <keavon@keavon.com> |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||
| LICENSE-APACHE | ||
| LICENSE-MIT | ||
| README.md | ||
README.md
Bezier-rs
Computational geometry algorithms for Bézier segments and shapes useful in the context of 2D graphics.
Play with the interactive documentation which visualizes each API function in a fun manner:
View the interactive API
Bezier-rs is built for the needs of Graphite, an open source 2D vector graphics editor. We hope it may be useful to others, but presently Graphite is its primary user. Pull requests are welcomed for new features, code cleanup, ergonomic enhancements, performance improvements, and documentation clarifications.
The library currently provides functions dealing with single Bézier curve segments and open-or-closed multi-segment paths (which we call subpaths).
In the future, the library will be expanded to include compound paths (multiple subpaths forming a single shape, where the winding order determines inside-or-outside-ness) and operations between paths (e.g. boolean operations, convex hull). Pull requests for these additional features would be highly desirable.
Bezier-rs is inspired by Bezier.js and A Primer on Bézier Curves by Pomax. Bezier-rs is not a port of Bezier.js so the API for single-segment Bézier curves has some differences, and the intention is to offer a broader scope that provides algorithms beyond single curve segments (as noted above) to eventually service full vector shapes.
Terminology
Graphite and Bezier-rs use the following terminology for vector data. These depictions are given for cubic Bézier curves.



