Qwt User's Guide  6.1.6
QwtSpline Class Reference

A class for spline interpolation. More...

#include <qwt_spline.h>

Public Types

enum  SplineType { Natural, Periodic }
 Spline type. More...
 

Public Member Functions

 QwtSpline ()
 Constructor.
 
 QwtSpline (const QwtSpline &)
 
 ~QwtSpline ()
 Destructor.
 
QwtSplineoperator= (const QwtSpline &)
 
void setSplineType (SplineType)
 
SplineType splineType () const
 
bool setPoints (const QPolygonF &points)
 Calculate the spline coefficients. More...
 
QPolygonF points () const
 
void reset ()
 Free allocated memory and set size to 0.
 
bool isValid () const
 True if valid.
 
double value (double x) const
 
const QVector< double > & coefficientsA () const
 
const QVector< double > & coefficientsB () const
 
const QVector< double > & coefficientsC () const
 

Protected Member Functions

bool buildNaturalSpline (const QPolygonF &)
 Determines the coefficients for a natural spline. More...
 
bool buildPeriodicSpline (const QPolygonF &)
 Determines the coefficients for a periodic spline. More...
 

Detailed Description

A class for spline interpolation.

The QwtSpline class is used for cubical spline interpolation. Two types of splines, natural and periodic, are supported.

Usage:
  1. First call setPoints() to determine the spline coefficients for a tabulated function y(x).
  2. After the coefficients have been set up, the interpolated function value for an argument x can be determined by calling QwtSpline::value().
Example:
#include <qwt_spline.h>
QPolygonF interpolate(const QPolygonF& points, int numValues)
{
QwtSpline spline;
if ( !spline.setPoints(points) )
return points;
QPolygonF interpolatedPoints(numValues);
const double delta =
(points[numPoints - 1].x() - points[0].x()) / (points.size() - 1);
for(i = 0; i < points.size(); i++) / interpolate
{
const double x = points[0].x() + i * delta;
interpolatedPoints[i].setX(x);
interpolatedPoints[i].setY(spline.value(x));
}
return interpolatedPoints;
}

Member Enumeration Documentation

◆ SplineType

Spline type.

Enumerator
Natural 

A natural spline.

Periodic 

A periodic spline.

Constructor & Destructor Documentation

◆ QwtSpline()

QwtSpline::QwtSpline ( const QwtSpline other)

Copy constructor

Parameters
otherSpline used for initialization

Member Function Documentation

◆ buildNaturalSpline()

bool QwtSpline::buildNaturalSpline ( const QPolygonF &  points)
protected

Determines the coefficients for a natural spline.

Returns
true if successful

◆ buildPeriodicSpline()

bool QwtSpline::buildPeriodicSpline ( const QPolygonF &  points)
protected

Determines the coefficients for a periodic spline.

Returns
true if successful

◆ coefficientsA()

const QVector< double > & QwtSpline::coefficientsA ( ) const
Returns
A coefficients

◆ coefficientsB()

const QVector< double > & QwtSpline::coefficientsB ( ) const
Returns
B coefficients

◆ coefficientsC()

const QVector< double > & QwtSpline::coefficientsC ( ) const
Returns
C coefficients

◆ operator=()

QwtSpline & QwtSpline::operator= ( const QwtSpline other)

Assignment operator

Parameters
otherSpline used for initialization
Returns
*this

◆ points()

QPolygonF QwtSpline::points ( ) const
Returns
Points, that have been by setPoints()

◆ setPoints()

bool QwtSpline::setPoints ( const QPolygonF &  points)

Calculate the spline coefficients.

Depending on the value of periodic, this function will determine the coefficients for a natural or a periodic spline and store them internally.

Parameters
pointsPoints
Returns
true if successful
Warning
The sequence of x (but not y) values has to be strictly monotone increasing, which means points[i].x() < points[i+1].x(). If this is not the case, the function will return false

◆ setSplineType()

void QwtSpline::setSplineType ( SplineType  splineType)

Select the algorithm used for calculating the spline

Parameters
splineTypeSpline type
See also
splineType()

◆ splineType()

QwtSpline::SplineType QwtSpline::splineType ( ) const
Returns
the spline type
See also
setSplineType()

◆ value()

double QwtSpline::value ( double  x) const

Calculate the interpolated function value corresponding to a given argument x.

Parameters
xCoordinate
Returns
Interpolated coordinate
QwtSpline::points
QPolygonF points() const
Definition: qwt_spline.cpp:158
QwtSpline::value
double value(double x) const
Definition: qwt_spline.cpp:204
QwtSpline::setPoints
bool setPoints(const QPolygonF &points)
Calculate the spline coefficients.
Definition: qwt_spline.cpp:128
QwtSpline
A class for spline interpolation.
Definition: qwt_spline.h:58