QwtSpline(3)

NAME
QwtSpline - A class for spline interpolation.

SYNOPSIS

#include <qwt_spline.h>

  Public Types
enum SplineType { Natural, Periodic }

  Public Member Functions
QwtSpline ()
QwtSpline (const QwtSpline &)
~QwtSpline ()
QwtSpline & operator= (const QwtSpline &)
void setSplineType (SplineType)
SplineType splineType () const
bool setPoints (const QPolygonF &points)
QPolygonF points () const
void reset ()
bool isValid () const
double value (double x) const
const QwtArray< double > & coefficientsA () const
const QwtArray< double > & coefficientsB () const
const QwtArray< double > & coefficientsC () const

  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:.RS 4
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:.RS 4
#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 () const
Returns:
    A coefficients

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

  const QwtArray< double > & QwtSpline::coefficientsC () const
Returns:
    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 () const
Return 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:
    x
    y points
    size number of points
    periodic if true, calculate periodic spline
Returns:
    true if successful
Warning:
    The sequence of x (but not y) values has to be strictly monotone increasing, which means x[0] < x[1] < .... < x[n-1]. If this is not the case, the function will return false

  void QwtSpline::setSplineType (SplineType splineType)
Select the algorithm used for calculating the spline
Parameters:
    splineType Spline type
See also:
    splineType()

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

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

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