mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-24 07:20:01 +02:00

- qt4->qt5 - in built qt5 6.1.5 because rhel7 is not upto date with qt5, removed findqwt.cmake - made a fix in qwt lib (qwt_plot_layout.h) to work with 5.15 and lower versions for qrect constr. - qt5 forms fixed, qt4 many hard coding forms switched to forms including qtabwidget, scrolls etc, fonts moved to forms - docking option enabled by default, removed option to disable docking feature from "Mode" - added qVersionResolve utility functions to handle compatibility before and after qt5.12 - qtplots (ian's code) takes in gain mode enable to set some settings within the class, with proper gain plot ticks - ensure gain plots have no zooming of z axis in 2d and y axis in 1d - removed placeholder text in qpalette in main window form as its not supportd until 5.12 (so using qt5.9 designer insted of qt5.15 to cope) - tab order Servers: - fixed some error messages that were empty for fail in funcs (mostly minor as if this error, major issues)
152 lines
3.8 KiB
Groff
152 lines
3.8 KiB
Groff
.TH "QwtWeedingCurveFitter" 3 "Mon Jun 1 2020" "Version 6.1.5" "Qwt User's Guide" \" -*- nroff -*-
|
|
.ad l
|
|
.nh
|
|
.SH NAME
|
|
QwtWeedingCurveFitter \- A curve fitter implementing Douglas and Peucker algorithm\&.
|
|
|
|
.SH SYNOPSIS
|
|
.br
|
|
.PP
|
|
.PP
|
|
\fC#include <qwt_curve_fitter\&.h>\fP
|
|
.PP
|
|
Inherits \fBQwtCurveFitter\fP\&.
|
|
.SS "Public Member Functions"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "\fBQwtWeedingCurveFitter\fP (double \fBtolerance\fP=1\&.0)"
|
|
.br
|
|
.ti -1c
|
|
.RI "virtual \fB~QwtWeedingCurveFitter\fP ()"
|
|
.br
|
|
.RI "Destructor\&. "
|
|
.ti -1c
|
|
.RI "void \fBsetTolerance\fP (double)"
|
|
.br
|
|
.ti -1c
|
|
.RI "double \fBtolerance\fP () const"
|
|
.br
|
|
.ti -1c
|
|
.RI "void \fBsetChunkSize\fP (uint)"
|
|
.br
|
|
.ti -1c
|
|
.RI "uint \fBchunkSize\fP () const"
|
|
.br
|
|
.ti -1c
|
|
.RI "virtual QPolygonF \fBfitCurve\fP (const QPolygonF &) const"
|
|
.br
|
|
.in -1c
|
|
.SS "Additional Inherited Members"
|
|
.SH "Detailed Description"
|
|
.PP
|
|
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\&.
|
|
.PP
|
|
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 ( \fBsetChunkSize()\fP ) and to run the algorithm for these smaller parts\&. The disadvantage of having no interpolation at the borders is for most use cases irrelevant\&.
|
|
.PP
|
|
The smoothed curve consists of a subset of the points that defined the original curve\&.
|
|
.PP
|
|
In opposite to \fBQwtSplineCurveFitter\fP the Douglas and Peucker algorithm reduces the number of points\&. By adjusting the tolerance parameter according to the axis scales \fBQwtSplineCurveFitter\fP can be used to implement different level of details to speed up painting of curves of many points\&.
|
|
.SH "Constructor & Destructor Documentation"
|
|
.PP
|
|
.SS "QwtWeedingCurveFitter::QwtWeedingCurveFitter (double tolerance = \fC1\&.0\fP)"
|
|
Constructor
|
|
.PP
|
|
\fBParameters\fP
|
|
.RS 4
|
|
\fItolerance\fP Tolerance
|
|
.RE
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
\fBsetTolerance()\fP, \fBtolerance()\fP
|
|
.RE
|
|
.PP
|
|
|
|
.SH "Member Function Documentation"
|
|
.PP
|
|
.SS "uint QwtWeedingCurveFitter::chunkSize () const"
|
|
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
Maximum for the number of points passed to a run of the algorithm - or 0, when unlimited
|
|
.RE
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
\fBsetChunkSize()\fP
|
|
.RE
|
|
.PP
|
|
|
|
.SS "QPolygonF QwtWeedingCurveFitter::fitCurve (const QPolygonF & points) const\fC [virtual]\fP"
|
|
|
|
.PP
|
|
\fBParameters\fP
|
|
.RS 4
|
|
\fIpoints\fP Series of data points
|
|
.RE
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
Curve points
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Implements \fBQwtCurveFitter\fP\&.
|
|
.SS "void QwtWeedingCurveFitter::setChunkSize (uint numPoints)"
|
|
Limit the number of points passed to a run of the algorithm
|
|
.PP
|
|
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\&.
|
|
.PP
|
|
\fBParameters\fP
|
|
.RS 4
|
|
\fInumPoints\fP Maximum for the number of points passed to the algorithm
|
|
.RE
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
\fBchunkSize()\fP
|
|
.RE
|
|
.PP
|
|
|
|
.SS "void QwtWeedingCurveFitter::setTolerance (double tolerance)"
|
|
Assign the tolerance
|
|
.PP
|
|
The tolerance is the maximum distance, that is acceptable between the original curve and the smoothed curve\&.
|
|
.PP
|
|
Increasing the tolerance will reduce the number of the resulting points\&.
|
|
.PP
|
|
\fBParameters\fP
|
|
.RS 4
|
|
\fItolerance\fP Tolerance
|
|
.RE
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
\fBtolerance()\fP
|
|
.RE
|
|
.PP
|
|
|
|
.SS "double QwtWeedingCurveFitter::tolerance () const"
|
|
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
Tolerance
|
|
.RE
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
\fBsetTolerance()\fP
|
|
.RE
|
|
.PP
|
|
|
|
|
|
.SH "Author"
|
|
.PP
|
|
Generated automatically by Doxygen for Qwt User's Guide from the source code\&.
|