|
QWT API (中文) 7.3.0
Qt绘图库 - 中文API文档
|
Base class for all splines 更多...
#include <qwt_spline.h>
类 | |
| class | PrivateData |
Public 类型 | |
| enum | BoundaryType { ConditionalBoundaries , PeriodicPolygon , ClosedPolygon } |
| Boundary type specifying the spline at its endpoints 更多... | |
| enum | BoundaryPosition { AtBeginning , AtEnd } |
| position of a boundary condition 更多... | |
| enum | BoundaryCondition { Clamped1 , Clamped2 , Clamped3 , LinearRunout } |
| Boundary condition 更多... | |
Public 成员函数 | |
| QwtSpline () | |
| Constructor | |
| virtual | ~QwtSpline () |
| Destructor | |
| void | setParametrization (int type) |
| Set parametrization by type | |
| void | setParametrization (QwtSplineParametrization *) |
| Set parametrization object | |
| const QwtSplineParametrization * | parametrization () const |
| Get parametrization | |
| void | setBoundaryType (BoundaryType) |
| Set boundary type | |
| BoundaryType | boundaryType () const |
| Get boundary type | |
| void | setBoundaryValue (BoundaryPosition, double value) |
| Set boundary value | |
| double | boundaryValue (BoundaryPosition) const |
| Get boundary value | |
| void | setBoundaryCondition (BoundaryPosition, int condition) |
| Set boundary condition | |
| int | boundaryCondition (BoundaryPosition) const |
| Get boundary condition | |
| void | setBoundaryConditions (int condition, double valueBegin=0.0, double valueEnd=0.0) |
| Set boundary conditions for both ends | |
| virtual QPolygonF | polygon (const QPolygonF &, double tolerance) const |
| Get polygon approximation with tolerance | |
| virtual QPainterPath | painterPath (const QPolygonF &) const =0 |
| Get painter path from polygon (pure virtual) | |
| virtual uint | locality () const |
| Get locality (number of points used for calculation) | |
Base class for all splines
A spline is a curve represented by a sequence of polynomials. Spline approximation is the process of finding polynomials for a given set of points. When the algorithm preserves the initial points it is called interpolating.
Splines can be classified according to conditions of the polynomials that are met at the start/endpoints of the pieces:
Geometric continuity requires the geometry to be continuous, while parametric continuity requires that the underlying parameterization be continuous as well. Parametric continuity of order n implies geometric continuity of order n, but not vice-versa.
QwtSpline is the base class for spline approximations of any continuity.
Boundary condition
A spline algorithm calculates polynomials by looking a couple of points back/ahead ( locality() ). At the ends additional rules are necessary to compensate the missing points.
Boundary type specifying the spline at its endpoints
| 枚举值 | |
|---|---|
| ConditionalBoundaries | The polynomials at the start/endpoint depend on specific conditions |
| PeriodicPolygon | The polynomials at the start/endpoint are found by using imaginary additional points. Additional points at the end are found by translating points from the beginning or v.v. |
| ClosedPolygon | ClosedPolygon is similar to PeriodicPolygon beside, that the interpolation includes the connection between the last and the first control point.
|
| QwtSpline::QwtSpline | ( | ) |
Constructor
The default setting is a non-closing spline with chordal parametrization.
Destructor
| int QwtSpline::boundaryCondition | ( | BoundaryPosition | position | ) | const |
Get boundary condition
| [in] | position | At the beginning or the end of the spline |
| QwtSpline::BoundaryType QwtSpline::boundaryType | ( | ) | const |
| double QwtSpline::boundaryValue | ( | BoundaryPosition | position | ) | const |
Get boundary value
| [in] | position | At the beginning or the end of the spline |
|
virtual |
Get locality (number of points used for calculation)
Get the locality of the spline interpolation
The locality of a spline interpolation identifies how many adjacent polynomials are affected when changing the position of one point.
A locality of 'n' means that changing the coordinates of a point has an effect on 'n' leading and 'n' following polynomials. Those polynomials can be calculated from a local subpolygon.
A value of 0 means the interpolation is not local and any modification of the polygon requires recalculating all polynomials (e.g., cubic splines).
被 QwtSplineBasis, QwtSplineCubic, QwtSplineLocal , 以及 QwtSplinePleasing 重载.
|
pure virtual |
Get painter path from polygon (pure virtual)
Approximates a polygon piecewise with cubic Bezier curves and returns them as QPainterPath.
| points | Control points |
在 QwtSplineInterpolating, QwtSplineC1, QwtSplineC2, QwtSplineBasis, QwtSplineCubic, QwtSplineLocal , 以及 QwtSplinePleasing 内被实现.
| const QwtSplineParametrization * QwtSpline::parametrization | ( | ) | const |
|
virtual |
Get polygon approximation with tolerance
Interpolate a curve by a polygon
Interpolates a polygon piecewise with Bezier curves interpolating them in a 2nd pass by polygons.
The interpolation is based on "Piecewise Linear Approximation of Bezier Curves" by Roger Willcocks ( http://www.rops.org )
| [in] | points | Control points |
| [in] | tolerance | Maximum for the accepted error of the approximation |
被 QwtSplineInterpolating 重载.
| void QwtSpline::setBoundaryCondition | ( | BoundaryPosition | position, |
| int | condition | ||
| ) |
Set boundary condition
Define the condition for an endpoint of the spline.
| [in] | position | At the beginning or the end of the spline |
| [in] | condition | Condition |
| void QwtSpline::setBoundaryConditions | ( | int | condition, |
| double | valueBegin = 0.0, |
||
| double | valueEnd = 0.0 |
||
| ) |
Set boundary conditions for both ends
Define the condition at the endpoints of a spline.
| [in] | condition | Condition |
| [in] | valueBegin | Used for the condition at the beginning of the spline |
| [in] | valueEnd | Used for the condition at the end of the spline |
| void QwtSpline::setBoundaryType | ( | BoundaryType | boundaryType | ) |
Set boundary type
Define the boundary type for the endpoints of the approximating spline.
| [in] | boundaryType | Boundary type |
| void QwtSpline::setBoundaryValue | ( | BoundaryPosition | position, |
| double | value | ||
| ) |
Set boundary value
The boundary value is a parameter used in combination with the boundary condition. Its meaning depends on the condition.
| [in] | position | At the beginning or the end of the spline |
| [in] | value | Value used for the condition at the endpoint |
| void QwtSpline::setParametrization | ( | int | type | ) |
Set parametrization by type
Define the parametrization for a parametric spline approximation. The default setting is a chordal parametrization.
| [in] | type | Type of parametrization, usually one of QwtSplineParametrization::Type |
| void QwtSpline::setParametrization | ( | QwtSplineParametrization * | parametrization | ) |
Set parametrization object
Define the parametrization for a parametric spline approximation. The default setting is a chordal parametrization.
| [in] | parametrization | Parametrization object |