| Qwt User's Guide
    6.2.0
    | 
An implementation of the de Casteljau’s Algorithm for interpolating Bézier curves. More...
#include <qwt_bezier.h>
| Public Member Functions | |
| QwtBezier (double tolerance=0.5) | |
| Constructor.  More... | |
| ~QwtBezier () | |
| Destructor. | |
| void | setTolerance (double tolerance) | 
| double | tolerance () const | 
| QPolygonF | toPolygon (const QPointF &p1, const QPointF &cp1, const QPointF &cp2, const QPointF &p2) const | 
| Interpolate a Bézier curve by a polygon.  More... | |
| void | appendToPolygon (const QPointF &p1, const QPointF &cp1, const QPointF &cp2, const QPointF &p2, QPolygonF &polygon) const | 
| Interpolate a Bézier curve by a polygon.  More... | |
| Static Public Member Functions | |
| static QPointF | pointAt (const QPointF &p1, const QPointF &cp1, const QPointF &cp2, const QPointF &p2, double t) | 
An implementation of the de Casteljau’s Algorithm for interpolating Bézier curves.
The flatness criterion for terminating the subdivision is based on "Piecewise Linear Approximation of Bézier Curves" by Roger Willcocks ( http://www.rops.org )
This article explains the maths behind in a very nice way: https://jeremykun.com/2013/05/11/bezier-curves-and-picasso
Definition at line 29 of file qwt_bezier.h.
| QwtBezier::QwtBezier | ( | double | tolerance = 0.5 | ) | 
Constructor.
| tolerance | Termination criterion for the subdivision | 
Definition at line 116 of file qwt_bezier.cpp.
| void QwtBezier::appendToPolygon | ( | const QPointF & | p1, | 
| const QPointF & | cp1, | ||
| const QPointF & | cp2, | ||
| const QPointF & | p2, | ||
| QPolygonF & | polygon | ||
| ) | const | 
Interpolate a Bézier curve by a polygon.
appendToPolygon() is tailored for cumulating points from a sequence of bezier curves like being created by a spline interpolation.
| p1 | Start point | 
| cp1 | First control point | 
| cp2 | Second control point | 
| p2 | End point | 
| polygon | Polygon, where the interpolating points are added | 
Definition at line 186 of file qwt_bezier.cpp.
| 
 | static | 
Find a point on a Bézier Curve
| p1 | Start point | 
| cp1 | First control point | 
| cp2 | Second control point | 
| p2 | End point | 
| t | Parameter value, something between [0,1] | 
Definition at line 239 of file qwt_bezier.cpp.
| void QwtBezier::setTolerance | ( | double | tolerance | ) | 
Set the tolerance
The tolerance is a measurement for the flatness of a curve. A curve with a flatness below the tolerance is considered as being flat terminating the subdivision algorithm.
When interpolating a Bezier curve to render it as a sequence of lines to some sort of raster ( f.e to screen ) a value of 0.5 of the pixel size is a good value for the tolerance.
| tolerance | Termination criterion for the subdivision | 
Definition at line 141 of file qwt_bezier.cpp.
| 
 | inline | 
Definition at line 56 of file qwt_bezier.h.
| QPolygonF QwtBezier::toPolygon | ( | const QPointF & | p1, | 
| const QPointF & | cp1, | ||
| const QPointF & | cp2, | ||
| const QPointF & | p2 | ||
| ) | const | 
Interpolate a Bézier curve by a polygon.
| p1 | Start point | 
| cp1 | First control point | 
| cp2 | Second control point | 
| p2 | End point | 
Definition at line 157 of file qwt_bezier.cpp.