Qwt User's Guide: QwtSpline Class Reference

Qwt User's Guide 6.1.2

- Main Page
- Related Pages
- Classes

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Functions Variables Typedefs Enumerations Enumerator Pages
Public Types | Public Member Functions | Protected Member Functions | List of all members
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.
QwtSpline & | operator= (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

enum QwtSpline::SplineType

Spline type.

Enumerator
Natural | A natural spline.
Periodic | A periodic spline.

## Constructor & Destructor Documentation

QwtSpline::QwtSpline | ( | const QwtSpline & | other | ) |

Copy constructor

Parameters

  other | Spline used for initialization

## 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 QVector< double > & QwtSpline::coefficientsA | ( |  | ) | const

Returns
  A coefficients

const QVector< double > & QwtSpline::coefficientsB | ( |  | ) | const

Returns
  B coefficients

const QVector< double > & QwtSpline::coefficientsC | ( |  | ) | const

Returns
  C coefficients

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

Assignment operator

Parameters

  other | Spline used for initialization

Returns
  *this

QPolygonF QwtSpline::points | ( |  | ) | const

Returns
  Points, that have been by 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

  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 | ( | 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.

Parameters

  x | Coordinate

Returns
  Interpolated coordinate