Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
QwtSplineParametrization Class Reference

Curve parametrization used for a spline interpolation. More...

#include <qwt_spline_parametrization.h>

Public Types

enum  Type {
  ParameterX, ParameterY, ParameterUniform, ParameterChordal,
  ParameterCentripetal, ParameterManhattan
}
 Parametrization type. More...
 

Public Member Functions

 QwtSplineParametrization (int type)
 
int type () const
 
virtual double valueIncrement (const QPointF &, const QPointF &) const
 Calculate the parameter value increment for 2 points. More...
 
virtual ~QwtSplineParametrization ()
 Destructor. More...
 

Static Public Member Functions

static double valueIncrementCentripetal (const QPointF &, const QPointF &)
 Calculate the ParameterCentripetal value increment for 2 points. More...
 
static double valueIncrementChordal (const QPointF &, const QPointF &)
 Calculate the ParameterChordal value increment for 2 points. More...
 
static double valueIncrementManhattan (const QPointF &, const QPointF &)
 Calculate the ParameterManhattan value increment for 2 points. More...
 
static double valueIncrementUniform (const QPointF &, const QPointF &)
 Calculate the ParameterUniform value increment. More...
 
static double valueIncrementX (const QPointF &, const QPointF &)
 Calculate the ParameterX value increment for 2 points. More...
 
static double valueIncrementY (const QPointF &, const QPointF &)
 Calculate the ParameterY value increment for 2 points. More...
 

Private Attributes

const int d_type
 

Detailed Description

Curve parametrization used for a spline interpolation.

Parametrization is the process of finding a parameter value for each curve point - usually related to some physical quantity ( distance, time ... ).

Often accumulating the curve length is the intended way of parametrization, but as the interpolated curve is not known in advance an approximation needs to be used.

The values are calculated by cummulating increments, that are provided by QwtSplineParametrization. As the curve parameters need to be montonically increasing, each increment need to be positive.

QwtSplineParametrization provides the most common used type of parametrizations and offers an interface to inject custom implementations.

Note
The most relevant types of parametrization are trying to provide an approximation of the curve length.
See also
QwtSpline::setParametrization()

Definition at line 43 of file qwt_spline_parametrization.h.

Member Enumeration Documentation

Parametrization type.

Enumerator
ParameterX 

No parametrization: t[i] = x[i]

See also
valueIncrementX()
ParameterY 

No parametrization: t[i] = y[i]

See also
valueIncrementY()
ParameterUniform 

Uniform parametrization: t[i] = i;

A very fast parametrization, with good results, when the geometry of the control points is somehow "equidistant". F.e. when recording the position of a body, that is moving with constant speed every n seconds.

See also
valueIncrementUniform()
ParameterChordal 

Parametrization using the chordal length between two control points

The chordal length is the most commonly used approximation for the curve length.

See also
valueIncrementChordal()
ParameterCentripetal 

Centripetal parametrization

Based on the square root of the chordal length.

Its name stems from the physical observations regarding the centripetal force, of a body moving along the curve.

See also
valueIncrementCentripetal()
ParameterManhattan 

Parametrization using the manhattan length between two control points

Approximating the curve length by the manhattan length is faster than the chordal length, but usually gives worse results.

See also
valueIncrementManhattan()

Definition at line 47 of file qwt_spline_parametrization.h.

Constructor & Destructor Documentation

QwtSplineParametrization::QwtSplineParametrization ( int  type)
explicit

Constructor

Parameters
typeParametrization type
See also
type()

Definition at line 17 of file qwt_spline_parametrization.cpp.

QwtSplineParametrization::~QwtSplineParametrization ( )
virtual

Destructor.

Definition at line 23 of file qwt_spline_parametrization.cpp.

Member Function Documentation

int QwtSplineParametrization::type ( ) const
Returns
Parametrization type

Definition at line 72 of file qwt_spline_parametrization.cpp.

double QwtSplineParametrization::valueIncrement ( const QPointF &  point1,
const QPointF &  point2 
) const
virtual

Calculate the parameter value increment for 2 points.

Parameters
point1First point
point2Second point
Returns
Value increment

Definition at line 35 of file qwt_spline_parametrization.cpp.

double QwtSplineParametrization::valueIncrementCentripetal ( const QPointF &  point1,
const QPointF &  point2 
)
inlinestatic

Calculate the ParameterCentripetal value increment for 2 points.

Parameters
point1First point
point2Second point
Returns
The square root of a chordal increment

Definition at line 195 of file qwt_spline_parametrization.h.

double QwtSplineParametrization::valueIncrementChordal ( const QPointF &  point1,
const QPointF &  point2 
)
inlinestatic

Calculate the ParameterChordal value increment for 2 points.

Parameters
point1First point
point2Second point
Returns
qSqrt( dx * dx + dy * dy );

Definition at line 178 of file qwt_spline_parametrization.h.

double QwtSplineParametrization::valueIncrementManhattan ( const QPointF &  point1,
const QPointF &  point2 
)
inlinestatic

Calculate the ParameterManhattan value increment for 2 points.

Parameters
point1First point
point2Second point
Returns
| point2.x() - point1.x() | + | point2.y() - point1.y() |

Definition at line 209 of file qwt_spline_parametrization.h.

double QwtSplineParametrization::valueIncrementUniform ( const QPointF &  point1,
const QPointF &  point2 
)
inlinestatic

Calculate the ParameterUniform value increment.

Parameters
point1First point
point2Second point
Returns
1.0

Definition at line 161 of file qwt_spline_parametrization.h.

double QwtSplineParametrization::valueIncrementX ( const QPointF &  point1,
const QPointF &  point2 
)
inlinestatic

Calculate the ParameterX value increment for 2 points.

Parameters
point1First point
point2Second point
Returns
point2.x() - point1.x();

Definition at line 133 of file qwt_spline_parametrization.h.

double QwtSplineParametrization::valueIncrementY ( const QPointF &  point1,
const QPointF &  point2 
)
inlinestatic

Calculate the ParameterY value increment for 2 points.

Parameters
point1First point
point2Second point
Returns
point2.y() - point1.y();

Definition at line 147 of file qwt_spline_parametrization.h.

Member Data Documentation

const int QwtSplineParametrization::d_type
private

Definition at line 122 of file qwt_spline_parametrization.h.


The documentation for this class was generated from the following files:


plotjuggler
Author(s): Davide Faconti
autogenerated on Sat Jul 6 2019 03:44:19