QwtSpline(3) A class for spline interpolation.

SYNOPSIS


#include <qwt_spline.h>

Public Types


enum SplineType { Natural, Periodic }

Public Member Functions


const QwtArray< double > & coefficientsA () const

const QwtArray< double > & coefficientsB () const

const QwtArray< double > & coefficientsC () const

bool isValid () const

QwtSpline & operator= (const QwtSpline &)

QPolygonF points () const

QwtSpline ()

QwtSpline (const QwtSpline &)

void reset ()

bool setPoints (const QPolygonF &points)

void setSplineType (SplineType)

SplineType splineType () const

double value (double x) const

~QwtSpline ()

Protected Member Functions


bool buildNaturalSpline (const QPolygonF &)

bool buildPeriodicSpline (const QPolygonF &)

Protected Attributes


PrivateData * d_data

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

enum QwtSpline::SplineType

Spline type.

Constructor & Destructor Documentation

QwtSpline::QwtSpline ()

Constructor.

QwtSpline::QwtSpline (const QwtSpline &other)Copy constructor

Parameters:

other Spline used for initilization

QwtSpline::~QwtSpline ()

Destructor.

Member Function Documentation

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

Determines the coefficients for a natural spline. Returns:

true if successful

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

Determines the coefficients for a periodic spline. Returns:

true if successful

const QwtArray< double > & QwtSpline::coefficientsA () constReturns:

A coefficients

const QwtArray< double > & QwtSpline::coefficientsB () constReturns:

B coefficients

const QwtArray< double > & QwtSpline::coefficientsC () constReturns:

C coefficients

bool QwtSpline::isValid () const

True if valid.

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

Parameters:

other Spline used for initilization

QPolygonF QwtSpline::points () constReturn points passed by setPoints

void QwtSpline::reset ()

Free allocated memory and set size to 0.

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:

points Points

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

void QwtSpline::setSplineType (SplineTypesplineType)Select the algorithm used for calculating the spline

Parameters:

splineType Spline type

See also:

splineType()

QwtSpline::SplineType QwtSpline::splineType () constReturns:

the spline type

See also:

setSplineType()

double QwtSpline::value (doublex) constCalculate the interpolated function value corresponding to a given argument x.

Author

Generated automatically by Doxygen for Qwt User's Guide from the source code.