Giter VIP home page Giter VIP logo

bezier's Introduction

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

bezier's People

Contributors

dmiklic avatar fico95 avatar stribor14 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.