QwtSpline − Base class for all splines.
#include <qwt_spline.h>
Inherited by QwtSplineBasis, and QwtSplineInterpolating.
enum
BoundaryType { ConditionalBoundaries,
PeriodicPolygon, ClosedPolygon }
enum BoundaryPosition { AtBeginning,
AtEnd }
enum BoundaryCondition { Clamped1,
Clamped2, Clamped3, LinearRunout }
Boundary condition.
QwtSpline
()
Constructor.
virtual ˜QwtSpline ()
Destructor.
void setParametrization (int type)
void setParametrization
(QwtSplineParametrization *)
const QwtSplineParametrization *
parametrization () const
void setBoundaryType (BoundaryType)
BoundaryType boundaryType () const
void setBoundaryValue (BoundaryPosition,
double value)
Define the boundary value.
double boundaryValue (BoundaryPosition) const
void setBoundaryCondition (BoundaryPosition,
int condition)
Define the condition for an endpoint of the spline.
int boundaryCondition (BoundaryPosition) const
void setBoundaryConditions (int condition, double
valueBegin=0.0, double valueEnd=0.0)
Define the condition at the endpoints of a spline.
virtual QPolygonF polygon (const QPolygonF &,
double tolerance) const
Interpolate a curve by a polygon.
virtual QPainterPath painterPath (const QPolygonF
&) const =0
virtual uint locality () const
Base class for all splines.
A spline is a curve represented by a sequence of polynomials. Spline approximation is the process of finding polynomials for a given set of points. When the algorithm preserves the initial points it is called interpolating.
Splines can be classified according to conditions of the polynomials that are met at the start/endpoints of the pieces:
|
• |
Geometric Continuity |
•
|
G0: polynomials are joined | |||
|
• |
G1: first derivatives are proportional at the join point The curve tangents thus have the same direction, but not necessarily the same magnitude. i.e., C1’(1) = (a,b,c) and C2’(0) = (k*a, k*b, k*c). | ||
|
• |
G2: first and second derivatives are proportional at join point | ||
|
• |
Parametric Continuity
|
• |
C0: curves are joined |
|||
|
• |
C1: first derivatives equal |
|||
|
• |
C2: first and second derivatives are equal |
Geometric continuity requires the geometry to be continuous, while parametric continuity requires that the underlying parameterization be continuous as well. Parametric continuity of order n implies geometric continuity of order n, but not vice-versa.
QwtSpline is the base class for spline approximations of any continuity.
Definition at line 57 of file qwt_spline.h.
Boundary condition. A spline algorithm calculates polynomials by looking a couple of points back/ahead ( locality() ). At the ends additional rules are necessary to compensate the missing points.
See also
boundaryCondition(), boundaryValue()
QwtSplineC2::BoundaryConditionC2
Enumerator
Clamped1
The first derivative at the end point is given
See also
boundaryValue()
Clamped2
The second derivative at the end point is given
See also
boundaryValue()
Note
a condition having a second derivative of 0 is also called "natural".
Clamped3
The third derivative at the end point is given
See also
boundaryValue()
Note
a condition having a third derivative of 0 is also called "parabolic runout".
LinearRunout
The first derivate at the endpoint is related to the first derivative at its neighbour by the boundary value. F,e when the boundary value at the end is 1.0 then the slope at the last 2 points is the same.
See also
boundaryValue().
Definition at line 119 of file qwt_spline.h.
position of a boundary condition
See also
boundaryCondition(), boundaryValue()
Enumerator
AtBeginning
the condition is at the beginning of the polynomial
|
AtEnd |
the condition is at the end of the polynomial |
Definition at line 99 of file qwt_spline.h.
Boundary type specifying the spline at its endpoints
See also
setBoundaryType(), boundaryType()
Enumerator
ConditionalBoundaries
The polynomials at the start/endpoint depend on specific conditions
See also
QwtSpline::BoundaryCondition
PeriodicPolygon
The polynomials at the start/endpoint are found by using imaginary additional points. Additional points at the end are found by translating points from the beginning or v.v.
ClosedPolygon
ClosedPolygon is similar to PeriodicPolygon beside, that the interpolation includes the connection between the last and the first control point.
Note
Only works for parametrizations, where the parameter increment for the the final closing line is positive. This excludes QwtSplineParametrization::ParameterX and QwtSplineParametrization::ParameterY
Definition at line 65 of file qwt_spline.h.
Constructor. The default setting is a non closing spline with chordal parametrization
See also
setParametrization(), setBoundaryType()
Definition at line 540 of file qwt_spline.cpp.
Destructor.
Definition at line 546 of file qwt_spline.cpp.
Returns
Condition for an endpoint of the spline
Parameters
position At the beginning or the end of the spline
See also
setBoundaryCondition(), boundaryValue(), setBoundaryConditions()
Definition at line 651 of file qwt_spline.cpp.
Returns
Boundary type
See also
setBoundaryType()
Definition at line 626 of file qwt_spline.cpp.
Returns
Boundary value
Parameters
position At the beginning or the end of the spline
See also
setBoundaryValue(), boundaryCondition()
Definition at line 682 of file qwt_spline.cpp.
The locality of an spline interpolation identifies how many adjacent polynomials are affected, when changing the position of one point.
A locality of ’n’ means, that changing the coordinates of a point has an effect on ’n’ leading and ’n’ following polynomials. Those polynomials can be calculated from a local subpolygon.
A value of 0 means, that the interpolation is not local and any modification of the polygon requires to recalculate all polynomials ( f.e cubic splines ).
Returns
Order of locality
Reimplemented in QwtSplineBasis, QwtSplineCubic, QwtSplineLocal, and QwtSplinePleasing.
Definition at line 564 of file qwt_spline.cpp.
Approximates a polygon piecewise with cubic Bezier curves and returns them as QPainterPath.
Parameters
points Control points
Returns
Painter path, that can be rendered by QPainter
See also
polygon(), QwtBezier
Implemented in QwtSplineBasis, QwtSplineC1, QwtSplineC2, QwtSplineCubic, QwtSplineInterpolating, QwtSplineLocal, and QwtSplinePleasing.
Returns
parametrization
See also
setParametrization()
Definition at line 605 of file qwt_spline.cpp.
Interpolate a curve by a polygon. Interpolates a polygon piecewise with Bezier curves interpolating them in a 2nd pass by polygons.
The interpolation is based on "Piecewise Linear Approximation of Bézier Curves" by Roger Willcocks ( http://www.rops.org )
Parameters
points Control points
tolerance Maximum for the accepted error of the
approximation
Returns
polygon approximating the interpolating polynomials
See also
bezierControlLines(), QwtBezier
Reimplemented in QwtSplineInterpolating.
Definition at line 496 of file qwt_spline.cpp.
Define the condition for an endpoint of the spline.
Parameters
position At the
beginning or the end of the spline
condition Condition
See also
BoundaryCondition, QwtSplineC2::BoundaryCondition, boundaryCondition()
Definition at line 639 of file qwt_spline.cpp.
Define the condition at the endpoints of a spline.
Parameters
condition Condition
valueBegin Used for the condition at the beginning of te
spline
valueEnd Used for the condition at the end of te
spline
See also
BoundaryCondition, QwtSplineC2::BoundaryCondition, testBoundaryCondition(), setBoundaryValue()
Definition at line 700 of file qwt_spline.cpp.
Define the boundary type for the endpoints of the approximating spline.
Parameters
boundaryType Boundary type
See also
boundaryType()
Definition at line 617 of file qwt_spline.cpp.
Define the boundary value. The boundary value is an parameter used in combination with the boundary condition. Its meaning depends on the condition.
Parameters
position At the
beginning or the end of the spline
value Value used for the condition at the end point
See also
boundaryValue(), setBoundaryCondition()
Definition at line 670 of file qwt_spline.cpp.
Define the parametrization for a parametric spline approximation The default setting is a chordal parametrization.
Parameters
type Type of parametrization, usually one of QwtSplineParametrization::Type
See also
parametrization()
Definition at line 576 of file qwt_spline.cpp.
Define the parametrization for a parametric spline approximation The default setting is a chordal parametrization.
Parameters
parametrization Parametrization
See also
parametrization()
Definition at line 592 of file qwt_spline.cpp.
Generated automatically by Doxygen for Qwt User’s Guide from the source code.