353 lines
8.2 KiB
Groff
353 lines
8.2 KiB
Groff
.TH "QwtSplineParametrization" 3 "Sun Jul 18 2021" "Version 6.2.0" "Qwt User's Guide" \" -*- nroff -*-
|
|
.ad l
|
|
.nh
|
|
.SH NAME
|
|
QwtSplineParametrization \- Curve parametrization used for a spline interpolation\&.
|
|
|
|
.SH SYNOPSIS
|
|
.br
|
|
.PP
|
|
.PP
|
|
\fC#include <qwt_spline_parametrization\&.h>\fP
|
|
.SS "Public Types"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "enum \fBType\fP { \fBParameterX\fP, \fBParameterY\fP, \fBParameterUniform\fP, \fBParameterChordal\fP, \fBParameterCentripetal\fP, \fBParameterManhattan\fP }"
|
|
.br
|
|
.RI "Parametrization type\&. "
|
|
.in -1c
|
|
.SS "Public Member Functions"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "\fBQwtSplineParametrization\fP (int \fBtype\fP)"
|
|
.br
|
|
.ti -1c
|
|
.RI "virtual \fB~QwtSplineParametrization\fP ()"
|
|
.br
|
|
.RI "Destructor\&. "
|
|
.ti -1c
|
|
.RI "int \fBtype\fP () const"
|
|
.br
|
|
.ti -1c
|
|
.RI "virtual double \fBvalueIncrement\fP (const QPointF &, const QPointF &) const"
|
|
.br
|
|
.RI "Calculate the parameter value increment for 2 points\&. "
|
|
.in -1c
|
|
.SS "Static Public Member Functions"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "static double \fBvalueIncrementX\fP (const QPointF &, const QPointF &)"
|
|
.br
|
|
.RI "Calculate the ParameterX value increment for 2 points\&. "
|
|
.ti -1c
|
|
.RI "static double \fBvalueIncrementY\fP (const QPointF &, const QPointF &)"
|
|
.br
|
|
.RI "Calculate the ParameterY value increment for 2 points\&. "
|
|
.ti -1c
|
|
.RI "static double \fBvalueIncrementUniform\fP (const QPointF &, const QPointF &)"
|
|
.br
|
|
.RI "Calculate the ParameterUniform value increment\&. "
|
|
.ti -1c
|
|
.RI "static double \fBvalueIncrementChordal\fP (const QPointF &, const QPointF &)"
|
|
.br
|
|
.RI "Calculate the ParameterChordal value increment for 2 points\&. "
|
|
.ti -1c
|
|
.RI "static double \fBvalueIncrementCentripetal\fP (const QPointF &, const QPointF &)"
|
|
.br
|
|
.RI "Calculate the ParameterCentripetal value increment for 2 points\&. "
|
|
.ti -1c
|
|
.RI "static double \fBvalueIncrementManhattan\fP (const QPointF &, const QPointF &)"
|
|
.br
|
|
.RI "Calculate the ParameterManhattan value increment for 2 points\&. "
|
|
.in -1c
|
|
.SH "Detailed Description"
|
|
.PP
|
|
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 \&.\&.\&. )\&.
|
|
.PP
|
|
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\&.
|
|
.PP
|
|
The values are calculated by cumulating increments, that are provided by \fBQwtSplineParametrization\fP\&. As the curve parameters need to be montonically increasing, each increment need to be positive\&.
|
|
.PP
|
|
.IP "\(bu" 2
|
|
t[0] = 0;
|
|
.IP "\(bu" 2
|
|
t[i] = t[i-1] + valueIncrement( point[i-1], p[i] );
|
|
.PP
|
|
.PP
|
|
\fBQwtSplineParametrization\fP provides the most common used type of parametrizations and offers an interface to inject custom implementations\&.
|
|
.PP
|
|
\fBNote\fP
|
|
.RS 4
|
|
The most relevant types of parametrization are trying to provide an approximation of the curve length\&.
|
|
.RE
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
\fBQwtSpline::setParametrization()\fP
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 44 of file qwt_spline_parametrization\&.h\&.
|
|
.SH "Member Enumeration Documentation"
|
|
.PP
|
|
.SS "enum \fBQwtSplineParametrization::Type\fP"
|
|
|
|
.PP
|
|
Parametrization type\&.
|
|
.PP
|
|
\fBEnumerator\fP
|
|
.in +1c
|
|
.TP
|
|
\fB\fIParameterX \fP\fP
|
|
No parametrization: t[i] = x[i]
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
\fBvalueIncrementX()\fP
|
|
.RE
|
|
.PP
|
|
|
|
.TP
|
|
\fB\fIParameterY \fP\fP
|
|
No parametrization: t[i] = y[i]
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
\fBvalueIncrementY()\fP
|
|
.RE
|
|
.PP
|
|
|
|
.TP
|
|
\fB\fIParameterUniform \fP\fP
|
|
Uniform parametrization: t[i] = i;
|
|
.PP
|
|
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\&.
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
\fBvalueIncrementUniform()\fP
|
|
.RE
|
|
.PP
|
|
|
|
.TP
|
|
\fB\fIParameterChordal \fP\fP
|
|
Parametrization using the chordal length between two control points
|
|
.PP
|
|
The chordal length is the most commonly used approximation for the curve length\&.
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
\fBvalueIncrementChordal()\fP
|
|
.RE
|
|
.PP
|
|
|
|
.TP
|
|
\fB\fIParameterCentripetal \fP\fP
|
|
Centripetal parametrization
|
|
.PP
|
|
Based on the square root of the chordal length\&.
|
|
.PP
|
|
Its name stems from the physical observations regarding the centripetal force, of a body moving along the curve\&.
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
\fBvalueIncrementCentripetal()\fP
|
|
.RE
|
|
.PP
|
|
|
|
.TP
|
|
\fB\fIParameterManhattan \fP\fP
|
|
Parametrization using the manhattan length between two control points
|
|
.PP
|
|
Approximating the curve length by the manhattan length is faster than the chordal length, but usually gives worse results\&.
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
\fBvalueIncrementManhattan()\fP
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 48 of file qwt_spline_parametrization\&.h\&.
|
|
.SH "Constructor & Destructor Documentation"
|
|
.PP
|
|
.SS "QwtSplineParametrization::QwtSplineParametrization (int type)\fC [explicit]\fP"
|
|
Constructor
|
|
.PP
|
|
\fBParameters\fP
|
|
.RS 4
|
|
\fItype\fP Parametrization type
|
|
.RE
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
\fBtype()\fP
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 17 of file qwt_spline_parametrization\&.cpp\&.
|
|
.SH "Member Function Documentation"
|
|
.PP
|
|
.SS "int QwtSplineParametrization::type () const"
|
|
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
Parametrization type
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 72 of file qwt_spline_parametrization\&.cpp\&.
|
|
.SS "double QwtSplineParametrization::valueIncrement (const QPointF & point1, const QPointF & point2) const\fC [virtual]\fP"
|
|
|
|
.PP
|
|
Calculate the parameter value increment for 2 points\&.
|
|
.PP
|
|
\fBParameters\fP
|
|
.RS 4
|
|
\fIpoint1\fP First point
|
|
.br
|
|
\fIpoint2\fP Second point
|
|
.RE
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
Value increment
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 35 of file qwt_spline_parametrization\&.cpp\&.
|
|
.SS "double QwtSplineParametrization::valueIncrementCentripetal (const QPointF & point1, const QPointF & point2)\fC [inline]\fP, \fC [static]\fP"
|
|
|
|
.PP
|
|
Calculate the ParameterCentripetal value increment for 2 points\&.
|
|
.PP
|
|
\fBParameters\fP
|
|
.RS 4
|
|
\fIpoint1\fP First point
|
|
.br
|
|
\fIpoint2\fP Second point
|
|
.RE
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
The square root of a chordal increment
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 196 of file qwt_spline_parametrization\&.h\&.
|
|
.SS "double QwtSplineParametrization::valueIncrementChordal (const QPointF & point1, const QPointF & point2)\fC [inline]\fP, \fC [static]\fP"
|
|
|
|
.PP
|
|
Calculate the ParameterChordal value increment for 2 points\&.
|
|
.PP
|
|
\fBParameters\fP
|
|
.RS 4
|
|
\fIpoint1\fP First point
|
|
.br
|
|
\fIpoint2\fP Second point
|
|
.RE
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
qSqrt( dx * dx + dy * dy );
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 179 of file qwt_spline_parametrization\&.h\&.
|
|
.SS "double QwtSplineParametrization::valueIncrementManhattan (const QPointF & point1, const QPointF & point2)\fC [inline]\fP, \fC [static]\fP"
|
|
|
|
.PP
|
|
Calculate the ParameterManhattan value increment for 2 points\&.
|
|
.PP
|
|
\fBParameters\fP
|
|
.RS 4
|
|
\fIpoint1\fP First point
|
|
.br
|
|
\fIpoint2\fP Second point
|
|
.RE
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
| point2\&.x() - point1\&.x() | + | point2\&.y() - point1\&.y() |
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 210 of file qwt_spline_parametrization\&.h\&.
|
|
.SS "double QwtSplineParametrization::valueIncrementUniform (const QPointF & point1, const QPointF & point2)\fC [inline]\fP, \fC [static]\fP"
|
|
|
|
.PP
|
|
Calculate the ParameterUniform value increment\&.
|
|
.PP
|
|
\fBParameters\fP
|
|
.RS 4
|
|
\fIpoint1\fP First point
|
|
.br
|
|
\fIpoint2\fP Second point
|
|
.RE
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
1\&.0
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 162 of file qwt_spline_parametrization\&.h\&.
|
|
.SS "double QwtSplineParametrization::valueIncrementX (const QPointF & point1, const QPointF & point2)\fC [inline]\fP, \fC [static]\fP"
|
|
|
|
.PP
|
|
Calculate the ParameterX value increment for 2 points\&.
|
|
.PP
|
|
\fBParameters\fP
|
|
.RS 4
|
|
\fIpoint1\fP First point
|
|
.br
|
|
\fIpoint2\fP Second point
|
|
.RE
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
point2\&.x() - point1\&.x();
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 134 of file qwt_spline_parametrization\&.h\&.
|
|
.SS "double QwtSplineParametrization::valueIncrementY (const QPointF & point1, const QPointF & point2)\fC [inline]\fP, \fC [static]\fP"
|
|
|
|
.PP
|
|
Calculate the ParameterY value increment for 2 points\&.
|
|
.PP
|
|
\fBParameters\fP
|
|
.RS 4
|
|
\fIpoint1\fP First point
|
|
.br
|
|
\fIpoint2\fP Second point
|
|
.RE
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
point2\&.y() - point1\&.y();
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 148 of file qwt_spline_parametrization\&.h\&.
|
|
|
|
.SH "Author"
|
|
.PP
|
|
Generated automatically by Doxygen for Qwt User's Guide from the source code\&.
|