Fast and lightweight class for using the Bezier curves of any order in C++
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 parameter t
- Get t from projection any point onto a curve
- Get precise length for any part of curve
- Get a derivative curve (hodograph)
- Split into two subcurves
- Find curve roots and bounding box
- Find points of intersection with another curve
- 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++11
- Eigen3
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
- qt5-default
Apache License Version 2.0