Fast and lightweight class for using the Bezier curves of any order in C++
Some algorithm implementations are based on A Primer on Bezier Curves by Pomax
- Any number of control points
- Fast operations on curves
- Dynamic manipulation
- Composite Bezier curves (polycurves)
CMake find_package() compatible!
find_package(Bezier)
target_link_libraries(target bezier)
- Get value, derivative, curvature, tangent and normal for a parameter t
- Point projection onto curve
- Get curve length, parameter iteration by length
- Get a derivative curve (hodograph)
- Split into subcurves
- Find curve roots, extrema and bounding box
- Find points of intersection
- Elevate/lower order
- Apply parametric and geometric continuities
- etc.
- [ ] Polycurve - oversee continuities between consecutive sub-curves
- [ ] Polycurve - propagation of sub-curve manipulation depending on continutiy
- [ ] Bezier shapes
- [ ] More sophisticated example
- c++17
- Eigen3.3
git clone https://github.com/romb-technologies/Bezier
mkdir Bezier/build
cd Bezier/build
cmake ..
make
make install
- for use within a ROS workspace without the system-wide installation, clone the repo to src folder in you catkin workspace
A small Qt5 based program written as a playground for manipulating Bezier curves.
- press H for a list of possible actions
- outdated - newer features are not used in the example application
- qt5-default
Apache License Version 2.0