QWT API (中文) 7.3.0
Qt绘图库 - 中文API文档
载入中...
搜索中...
未找到
| Public 成员函数 | 所有成员列表
QwtWeedingCurveFitter类 参考

A curve fitter implementing Douglas and Peucker algorithm 更多...

#include <qwt_weeding_curve_fitter.h>

类 QwtWeedingCurveFitter 继承关系图:
QwtCurveFitter

class  Line
 
class  PrivateData
 

Public 成员函数

 QwtWeedingCurveFitter (double tolerance=1.0)
 Constructor
 
void setTolerance (double)
 Assign the tolerance
 
double tolerance () const
 
void setChunkSize (uint)
 Limit the number of points passed to a run of the algorithm
 
uint chunkSize () const
 
virtual QPolygonF fitCurve (const QPolygonF &) const override
 
virtual QPainterPath fitCurvePath (const QPolygonF &) const override
 
- Public 成员函数 继承自 QwtCurveFitter
virtual ~QwtCurveFitter ()
 Destructor
 
Mode mode () const
 Get the preferred fitting mode
 

额外继承的成员函数

- Public 类型 继承自 QwtCurveFitter
enum  Mode { Polygon , Path }
 Preferred mode of the fitting algorithm 更多...
 
- Protected 成员函数 继承自 QwtCurveFitter
 QwtCurveFitter (Mode mode)
 Constructor
 

详细描述

A curve fitter implementing Douglas and Peucker algorithm

The purpose of the Douglas and Peucker algorithm is that given a 'curve' composed of line segments to find a curve not too dissimilar but that has fewer points. The algorithm defines 'too dissimilar' based on the maximum distance (tolerance) between the original curve and the smoothed curve.

The runtime of the algorithm increases non linear ( worst case O( n*n ) ) and might be very slow for huge polygons. To avoid performance issues it might be useful to split the polygon ( setChunkSize() ) and to run the algorithm for these smaller parts. The disadvantage of having no interpolation at the borders is for most use cases irrelevant.

The smoothed curve consists of a subset of the points that defined the original curve.

In opposite to QwtSplineCurveFitter the Douglas and Peucker algorithm reduces the number of points. By adjusting the tolerance parameter according to the axis scales QwtSplineCurveFitter can be used to implement different level of details to speed up painting of curves of many points.

构造及析构函数说明

◆ QwtWeedingCurveFitter()

QwtWeedingCurveFitter::QwtWeedingCurveFitter ( double  tolerance = 1.0)
explicit

Constructor

参数
toleranceTolerance
参见
setTolerance(), tolerance()

Destructor

成员函数说明

◆ chunkSize()

uint QwtWeedingCurveFitter::chunkSize ( ) const
返回
Maximum for the number of points passed to a run of the algorithm - or 0, when unlimited
参见
setChunkSize()

◆ fitCurve()

QPolygonF QwtWeedingCurveFitter::fitCurve ( const QPolygonF &  points) const
overridevirtual
参数
pointsSeries of data points
返回
Curve points
参见
fitCurvePath()

实现了 QwtCurveFitter.

◆ fitCurvePath()

QPainterPath QwtWeedingCurveFitter::fitCurvePath ( const QPolygonF &  points) const
overridevirtual
参数
pointsSeries of data points
返回
Curve path
参见
fitCurve()

实现了 QwtCurveFitter.

◆ setChunkSize()

void QwtWeedingCurveFitter::setChunkSize ( uint  numPoints)

Limit the number of points passed to a run of the algorithm

The runtime of the Douglas Peucker algorithm increases non linear with the number of points. For a chunk size > 0 the polygon is split into pieces passed to the algorithm one by one.

参数
numPointsMaximum for the number of points passed to the algorithm
参见
chunkSize()

◆ setTolerance()

void QwtWeedingCurveFitter::setTolerance ( double  tolerance)

Assign the tolerance

The tolerance is the maximum distance, that is acceptable between the original curve and the smoothed curve.

Increasing the tolerance will reduce the number of the resulting points.

参数
toleranceTolerance
参见
tolerance()

◆ tolerance()

double QwtWeedingCurveFitter::tolerance ( ) const
返回
Tolerance
参见
setTolerance()

该类的文档由以下文件生成: