Skip to content

1x-technologies/Bezier

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bezier

Build Status v0.2 Codacy Badge

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

Key Features

  • 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)

Implemented methods

  • 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.

Wish list

- [ ] Polycurve - oversee continuities between consecutive sub-curves
- [ ] Polycurve - propagation of sub-curve manipulation depending on continutiy
- [ ] Bezier shapes
- [ ] More sophisticated example

Dependencies

  • c++11
  • Eigen3

Instalation

System-wide installation

git clone https://github.com/romb-technologies/Bezier
mkdir Bezier/build
cd Bezier/build
cmake ..
make
make install

ROS

  • for use within a ROS workspace without the system-wide installation, clone the repo to src folder in you catkin workspace

Example program [OUTDATED]

A small Qt5 based program written as a playground for manipulating Bezier curves.

  • press H for a list of possible actions

Additional dependencies

  • qt5-default

Licence

Apache License Version 2.0

About

Fast and lightweight class for Bezier curves of any order in C++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.8%
  • Other 0.2%