A plot item, that represents a series of points. More...
#include <qwt_plot_curve.h>
Public Types | |
enum | CurveType { Yfx, Xfy } |
enum | CurveStyle { NoCurve, Lines, Sticks, Steps, Dots, UserCurve = 100 } |
enum | CurveAttribute { Inverted = 1, Fitted = 2 } |
enum | PaintAttribute { PaintFiltered = 1, ClipPolygons = 2 } |
Public Member Functions | |
QwtPlotCurve () | |
QwtPlotCurve (const QwtText &title) | |
QwtPlotCurve (const QString &title) | |
virtual | ~QwtPlotCurve () |
virtual int | rtti () const |
void | setCurveType (CurveType) |
CurveType | curveType () const |
void | setPaintAttribute (PaintAttribute, bool on=true) |
bool | testPaintAttribute (PaintAttribute) const |
void | setRawData (const double *x, const double *y, int size) |
void | setData (const double *xData, const double *yData, int size) |
void | setData (const QwtArray< double > &xData, const QwtArray< double > &yData) |
void | setData (const QPolygonF &data) |
void | setData (const QwtData &data) |
int | closestPoint (const QPoint &pos, double *dist=NULL) const |
QwtData & | data () |
const QwtData & | data () const |
int | dataSize () const |
double | x (int i) const |
double | y (int i) const |
virtual QwtDoubleRect | boundingRect () const |
double | minXValue () const |
double | maxXValue () const |
double | minYValue () const |
double | maxYValue () const |
void | setCurveAttribute (CurveAttribute, bool on=true) |
bool | testCurveAttribute (CurveAttribute) const |
void | setPen (const QPen &) |
const QPen & | pen () const |
void | setBrush (const QBrush &) |
const QBrush & | brush () const |
void | setBaseline (double ref) |
double | baseline () const |
void | setStyle (CurveStyle style) |
CurveStyle | style () const |
void | setSymbol (const QwtSymbol &s) |
const QwtSymbol & | symbol () const |
void | setCurveFitter (QwtCurveFitter *) |
QwtCurveFitter * | curveFitter () const |
virtual void | draw (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &) const |
virtual void | draw (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const |
void | draw (int from, int to) const |
virtual void | updateLegend (QwtLegend *) const |
Protected Member Functions | |
void | init () |
virtual void | drawCurve (QPainter *p, int style, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const |
virtual void | drawSymbols (QPainter *p, const QwtSymbol &, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const |
void | drawLines (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const |
void | drawSticks (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const |
void | drawDots (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const |
void | drawSteps (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, int from, int to) const |
void | fillCurve (QPainter *, const QwtScaleMap &, const QwtScaleMap &, QwtPolygon &) const |
void | closePolyline (const QwtScaleMap &, const QwtScaleMap &, QwtPolygon &) const |
A plot item, that represents a series of points.
A curve is the representation of a series of points in the x-y plane. It supports different display styles, interpolation ( f.e. spline ) and symbols.
Attribute for drawing the curve
Curve styles.
Curve type.
The baseline is used for aligning the sticks, or filling the curve with a brush.
Attributes to modify the drawing algorithm.
The default is, that no paint attributes are enabled.
QwtPlotCurve::QwtPlotCurve | ( | ) | [explicit] |
Constructor.
QwtPlotCurve::QwtPlotCurve | ( | const QwtText & | title | ) | [explicit] |
Constructor
title | Title of the curve |
QwtPlotCurve::QwtPlotCurve | ( | const QString & | title | ) | [explicit] |
Constructor
title | Title of the curve |
QwtPlotCurve::~QwtPlotCurve | ( | ) | [virtual] |
Destructor.
double QwtPlotCurve::baseline | ( | ) | const |
Return the value of the baseline
QwtDoubleRect QwtPlotCurve::boundingRect | ( | ) | const [virtual] |
Returns the bounding rectangle of the curve data. If there is no bounding rect, like for empty data the rectangle is invalid.
Reimplemented from QwtPlotItem.
const QBrush & QwtPlotCurve::brush | ( | ) | const |
Return the brush used to fill the area between lines and the baseline.
void QwtPlotCurve::closePolyline | ( | const QwtScaleMap & | xMap, | |
const QwtScaleMap & | yMap, | |||
QwtPolygon & | pa | |||
) | const [protected] |
Complete a polygon to be a closed polygon including the area between the original polygon and the baseline.
xMap | X map | |
yMap | Y map | |
pa | Polygon to be completed |
int QwtPlotCurve::closestPoint | ( | const QPoint & | pos, | |
double * | dist = NULL | |||
) | const |
Find the closest curve point for a specific position
pos | Position, where to look for the closest curve point | |
dist | If dist != NULL, closestPoint() returns the distance between the position and the clostest curve point |
QwtCurveFitter * QwtPlotCurve::curveFitter | ( | ) | const |
Get the curve fitter. If curve fitting is disabled NULL is returned.
QwtPlotCurve::CurveType QwtPlotCurve::curveType | ( | ) | const |
Return the curve type
const QwtData & QwtPlotCurve::data | ( | ) | const [inline] |
QwtData & QwtPlotCurve::data | ( | ) | [inline] |
int QwtPlotCurve::dataSize | ( | ) | const |
Return the size of the data arrays
void QwtPlotCurve::draw | ( | int | from, | |
int | to | |||
) | const |
Draw a set of points of a curve.
When observing an measurement while it is running, new points have to be added to an existing curve. drawCurve can be used to display them avoiding a complete redraw of the canvas.
Setting plot()->canvas()->setAttribute(Qt::WA_PaintOutsidePaintEvent, true); will result in faster painting, if the paint engine of the canvas widget supports this feature.
from | Index of the first point to be painted | |
to | Index of the last point to be painted. If to < 0 the curve will be painted to its last point. |
void QwtPlotCurve::draw | ( | QPainter * | painter, | |
const QwtScaleMap & | xMap, | |||
const QwtScaleMap & | yMap, | |||
int | from, | |||
int | to | |||
) | const [virtual] |
Draw an interval of the curve.
painter | Painter | |
xMap | maps x-values into pixel coordinates. | |
yMap | maps y-values into pixel coordinates. | |
from | index of the first point to be painted | |
to | index of the last point to be painted. If to < 0 the curve will be painted to its last point. |
void QwtPlotCurve::draw | ( | QPainter * | painter, | |
const QwtScaleMap & | xMap, | |||
const QwtScaleMap & | yMap, | |||
const QRect & | canvasRect | |||
) | const [virtual] |
Draw the complete curve.
painter | Painter | |
xMap | Maps x-values into pixel coordinates. | |
yMap | Maps y-values into pixel coordinates. |
Implements QwtPlotItem.
void QwtPlotCurve::drawCurve | ( | QPainter * | painter, | |
int | style, | |||
const QwtScaleMap & | xMap, | |||
const QwtScaleMap & | yMap, | |||
int | from, | |||
int | to | |||
) | const [protected, virtual] |
Draw the line part (without symbols) of a curve interval.
painter | Painter | |
style | curve style, see QwtPlotCurve::CurveStyle | |
xMap | x map | |
yMap | y map | |
from | index of the first point to be painted | |
to | index of the last point to be painted |
void QwtPlotCurve::drawDots | ( | QPainter * | painter, | |
const QwtScaleMap & | xMap, | |||
const QwtScaleMap & | yMap, | |||
int | from, | |||
int | to | |||
) | const [protected] |
Draw dots
painter | Painter | |
xMap | x map | |
yMap | y map | |
from | index of the first point to be painted | |
to | index of the last point to be painted |
void QwtPlotCurve::drawLines | ( | QPainter * | painter, | |
const QwtScaleMap & | xMap, | |||
const QwtScaleMap & | yMap, | |||
int | from, | |||
int | to | |||
) | const [protected] |
Draw lines.
If the CurveAttribute Fitted is enabled a QwtCurveFitter tries to interpolate/smooth the curve, before it is painted.
painter | Painter | |
xMap | x map | |
yMap | y map | |
from | index of the first point to be painted | |
to | index of the last point to be painted |
void QwtPlotCurve::drawSteps | ( | QPainter * | painter, | |
const QwtScaleMap & | xMap, | |||
const QwtScaleMap & | yMap, | |||
int | from, | |||
int | to | |||
) | const [protected] |
Draw step function
The direction of the steps depends on Inverted attribute.
painter | Painter | |
xMap | x map | |
yMap | y map | |
from | index of the first point to be painted | |
to | index of the last point to be painted |
void QwtPlotCurve::drawSticks | ( | QPainter * | painter, | |
const QwtScaleMap & | xMap, | |||
const QwtScaleMap & | yMap, | |||
int | from, | |||
int | to | |||
) | const [protected] |
Draw sticks
painter | Painter | |
xMap | x map | |
yMap | y map | |
from | index of the first point to be painted | |
to | index of the last point to be painted |
void QwtPlotCurve::drawSymbols | ( | QPainter * | painter, | |
const QwtSymbol & | symbol, | |||
const QwtScaleMap & | xMap, | |||
const QwtScaleMap & | yMap, | |||
int | from, | |||
int | to | |||
) | const [protected, virtual] |
Draw symbols.
painter | Painter | |
symbol | Curve symbol | |
xMap | x map | |
yMap | y map | |
from | index of the first point to be painted | |
to | index of the last point to be painted |
void QwtPlotCurve::fillCurve | ( | QPainter * | painter, | |
const QwtScaleMap & | xMap, | |||
const QwtScaleMap & | yMap, | |||
QwtPolygon & | pa | |||
) | const [protected] |
Fill the area between the curve and the baseline with the curve brush
painter | Painter | |
xMap | x map | |
yMap | y map | |
pa | Polygon |
void QwtPlotCurve::init | ( | ) | [protected] |
Initialize data members.
double QwtPlotCurve::maxXValue | ( | ) | const [inline] |
boundingRect().right()
double QwtPlotCurve::maxYValue | ( | ) | const [inline] |
boundingRect().bottom()
double QwtPlotCurve::minXValue | ( | ) | const [inline] |
boundingRect().left()
double QwtPlotCurve::minYValue | ( | ) | const [inline] |
boundingRect().top()
const QPen & QwtPlotCurve::pen | ( | ) | const |
int QwtPlotCurve::rtti | ( | ) | const [virtual] |
Reimplemented from QwtPlotItem.
void QwtPlotCurve::setBaseline | ( | double | reference | ) |
Set the value of the baseline.
The baseline is needed for filling the curve with a brush or the Sticks drawing style. The default value is 0.0. The interpretation of the baseline depends on the CurveType. With QwtPlotCurve::Yfx, the baseline is interpreted as a horizontal line at y = baseline(), with QwtPlotCurve::Yfy, it is interpreted as a vertical line at x = baseline().
reference | baseline |
void QwtPlotCurve::setBrush | ( | const QBrush & | brush | ) |
Assign a brush.
In case of brush.style() != QBrush::NoBrush and style() != QwtPlotCurve::Sticks the area between the curve and the baseline will be filled.
In case !brush.color().isValid() the area will be filled by pen.color(). The fill algorithm simply connects the first and the last curve point to the baseline. So the curve data has to be sorted (ascending or descending).
brush | New brush |
void QwtPlotCurve::setCurveAttribute | ( | CurveAttribute | attribute, | |
bool | on = true | |||
) |
Specify an attribute for drawing the curve
attribute | Curve attribute | |
on | On/Off |
/sa CurveAttribute, testCurveAttribute(), setCurveFitter()
void QwtPlotCurve::setCurveFitter | ( | QwtCurveFitter * | curveFitter | ) |
Assign a curve fitter setCurveFitter(NULL) disables curve fitting.
curveFitter | Curve fitter |
void QwtPlotCurve::setCurveType | ( | CurveType | curveType | ) |
void QwtPlotCurve::setData | ( | const QwtData & | data | ) |
void QwtPlotCurve::setData | ( | const QPolygonF & | data | ) |
Initialize data with an array of points (explicitly shared).
data | Data |
void QwtPlotCurve::setData | ( | const QwtArray< double > & | xData, | |
const QwtArray< double > & | yData | |||
) |
Initialize data with x- and y-arrays (explicitly shared) ( Builds an QwtArrayData object internally )
xData | x data | |
yData | y data |
void QwtPlotCurve::setData | ( | const double * | xData, | |
const double * | yData, | |||
int | size | |||
) |
Set data by copying x- and y-values from specified memory blocks. Contrary to setCurveRawData(), this function makes a 'deep copy' of the data.
xData | Pointer to x values | |
yData | Pointer to y values | |
size | Size of xData and yData |
void QwtPlotCurve::setPaintAttribute | ( | PaintAttribute | attribute, | |
bool | on = true | |||
) |
Specify an attribute how to draw the curve
attribute | Paint attribute | |
on | On/Off /sa PaintAttribute, testPaintAttribute() |
void QwtPlotCurve::setPen | ( | const QPen & | pen | ) |
Assign a pen
The width of non cosmetic pens is scaled according to the resolution of the paint device.
pen | New pen |
void QwtPlotCurve::setRawData | ( | const double * | xData, | |
const double * | yData, | |||
int | size | |||
) |
Initialize the data by pointing to memory blocks which are not managed by QwtPlotCurve.
setRawData is provided for efficiency. It is important to keep the pointers during the lifetime of the underlying QwtCPointerData class.
xData | pointer to x data | |
yData | pointer to y data | |
size | size of x and y |
void QwtPlotCurve::setStyle | ( | CurveStyle | style | ) |
void QwtPlotCurve::setSymbol | ( | const QwtSymbol & | symbol | ) |
QwtPlotCurve::CurveStyle QwtPlotCurve::style | ( | ) | const |
Return the current style
const QwtSymbol & QwtPlotCurve::symbol | ( | ) | const |
Return the current symbol.
bool QwtPlotCurve::testCurveAttribute | ( | CurveAttribute | attribute | ) | const |
bool QwtPlotCurve::testPaintAttribute | ( | PaintAttribute | attribute | ) | const |
Return the current paint attributes.
void QwtPlotCurve::updateLegend | ( | QwtLegend * | legend | ) | const [virtual] |
Update the widget that represents the curve on the legend.
Reimplemented from QwtPlotItem.
double QwtPlotCurve::x | ( | int | i | ) | const [inline] |
i | index |
double QwtPlotCurve::y | ( | int | i | ) | const [inline] |
i | index |