Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
stribor14 authored Mar 21, 2019
1 parent c024e82 commit 4205841
Showing 1 changed file with 22 additions and 13 deletions.
35 changes: 22 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,35 @@
# Bezier-Cpp
[![Build Status](https://travis-ci.com/stribor14/Bezier-cpp.svg?branch=master)](https://travis-ci.com/stribor14/Bezier-cpp)
![v1.0](https://img.shields.io/badge/version-1.0-blue.svg)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/aceb46ce7de1407abd56cfc127dba5f1)](https://www.codacy.com/app/stribor14/Bezier-cpp?utm_source=github.com&utm_medium=referral&utm_content=stribor14/Bezier-cpp&utm_campaign=Badge_Grade)

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

*Algorithm implementations are based on [A Primer on Bezier Curves](https://pomax.github.io/bezierinfo/) by Pomax*

## Key Features
- dynamic operations
- any order of curve
- optimized for real-time calculations
- Any number of control points
- Fast operations on curves
- Dynamic manipulation

## Implementeed methods
- get value, curvature, tangent and normal for parameter *t*
- get t from projection any point onto a curve
- get derivative curve
- split into two subcurves
- find extremes and bounding box
- find points of intersection with another curve
- elevate/lower order
- manipulate control points
- manipulate dot on curve (only for quadratic and cubic curves)
- Get value, curvature, tangent and normal for parameter *t*
- Get t from projection any point onto a curve
- Get derivative curve
- Split into two subcurves
- Find extremes and bounding box
- Find points of intersection with another curve
- Elevate/lower order
- Manipulate control points
- Manipulate dot on curve (only for quadratic and cubic curves)

## In development
- <img src="https://img.shields.io/badge/v.1.1-indev-yellow.svg" alt="v1.1 indev" align="top"> Bezier polycurves
- [x] Create polycurve (C0 continuity)
- [x] Equivalent methods from Bezier curves
- [ ] Adding aditional curves to existing polycurve
- [ ] Curve continuity and manipulation
- <img src="https://img.shields.io/badge/v.1.2-planned-red.svg" alt="v1.2 planned" align="top"> Bezier shapes

## Dependencies
- c++11
Expand All @@ -31,7 +40,7 @@ Fast and lightweight class for using the Bezier curves of any order in C++
## Example program
A small Qt5 based program written as a playground for manipulating Bezier curves.
### Usage
- starts with two Bezier curves (with 4 and 5 control points respectively)
- Starts with two Bezier curves (with 4 and 5 control points respectively)
- Zoom in/out: *__Ctrl + mouse wheel__*
- Manipulate control point or point on curve: *__Left mouse buttom__*
- Project mouse pointer on all curves and show tangent: *__Right mouse buttom__*
Expand Down

0 comments on commit 4205841

Please sign in to comment.