NAME
QwtCurve -
SYNOPSIS
Inherited by QwtPlotCurve.
Detailed Description
A class which draws curves.
This class can be used to display data as a curve in the x-y plane. It
supports different display styles, spline interpolation and symbols.
Usage.RS 4
A. Assign curve properties
When a curve is created, it is configured to draw black solid lines
with QwtCurve::Lines and no symbols. You can change this by calling
QwtCurve::setPen(), QwtCurve::setStyle() and QwtCurve::setSymbol().
B. Assign or change data.
Data can be set in two ways:.PD 0
· QwtCurve::setData() is overloaded to initialize the x and y data by
copying from different data structures with different kind of copy
semantics.
· QwtCurve::setRawData() only stores the pointers and size information
and is provided for backwards compatibility. This function is less
safe (you must not delete the data while they are attached), but has
been more efficient, and has been more convenient for dynamically
changing data. Use of QwtCurve::setData() in combination with a
problem-specific subclass of QwtData is always preferrable.
C. Draw
QwtCurve::draw() maps the data into pixel coordinates and paints
them.
Example:.RS 4 see examples/curvdemo
See also:
QwtData, QwtSymbol, QwtDiMap
Public Types
enum CurveStyle { NoCurve, Lines, Sticks, Steps, Dots, Spline,
UserCurve = 100 }
enum CurveOption { Auto = 0, Yfx = 1, Xfy = 2, Parametric = 4,
Periodic = 8, Inverted = 16 }
Public Member Functions
QwtCurve (const QString &title=QString::null)
QwtCurve (const QwtCurve &c)
virtual ~QwtCurve ()
const QwtCurve & operator= (const QwtCurve &c)
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 QwtArray< QwtDoublePoint > &data)
void setData (const QwtData &data)
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 setOptions (int t)
int options () const
void setTitle (const QString &title)
const QString & title () 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 (int style, int options=0)
int style () const
void setSymbol (const QwtSymbol &s)
const QwtSymbol & symbol () const
void setSplineSize (int s)
int splineSize () const
virtual void draw (QPainter *p, const QwtDiMap &xMap, const QwtDiMap
&yMap, int from=0, int to=-1)
Protected Member Functions
void init (const QString &title)
void copy (const QwtCurve &c)
virtual void drawCurve (QPainter *p, int style, const QwtDiMap &xMap,
const QwtDiMap &yMap, int from, int to)
virtual void drawSymbols (QPainter *p, QwtSymbol &, const QwtDiMap
&xMap, const QwtDiMap &yMap, int from, int to)
void drawLines (QPainter *p, const QwtDiMap &xMap, const QwtDiMap
&yMap, int from, int to)
void drawSticks (QPainter *p, const QwtDiMap &xMap, const QwtDiMap
&yMap, int from, int to)
void drawDots (QPainter *p, const QwtDiMap &xMap, const QwtDiMap &yMap,
int from, int to)
void drawSteps (QPainter *p, const QwtDiMap &xMap, const QwtDiMap
&yMap, int from, int to)
void drawSpline (QPainter *p, const QwtDiMap &xMap, const QwtDiMap
&yMap)
void closePolyline (const QwtDiMap &, const QwtDiMap &, QPointArray &)
const
virtual void curveChanged ()
int verifyRange (int &i1, int &i2)
Protected Attributes
QwtSpline d_spx
QwtSpline d_spy
Member Enumeration Documentation
enum QwtCurve::CurveOption
Curve options.
See also:
QwtCurve::setOptions
Definition at line 82 of file qwt_curve.h.
enum QwtCurve::CurveStyle
Curve styles.
See also:
QwtCurve::setStyle
Definition at line 67 of file qwt_curve.h.
Constructor & Destructor Documentation
QwtCurve::QwtCurve (const QString & title = QString::null)
Ctor.
Parameters:
title title of the curve
Definition at line 321 of file qwt_curve.cpp.
References init().
QwtCurve::QwtCurve (const QwtCurve & c)
Copy Constructor.
Definition at line 60 of file qwt_curve.cpp.
References copy(), d_title, and init().
QwtCurve::~QwtCurve () [virtual]
Dtor.
Definition at line 52 of file qwt_curve.cpp.
Member Function Documentation
double QwtCurve::baseline () const
Return the value of the baseline.
See also:
QwtCurve::setBaseline
Definition at line 907 of file qwt_curve.cpp.
Referenced by QwtPlot::curveBaseline().
QwtDoubleRect QwtCurve::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:
QwtDoubleRect.isValid() == FALSE Definition at line 309 of file
qwt_curve.cpp.
References QwtData::boundingRect().
Referenced by QwtPlot::updateAxes().
const QBrush & QwtCurve::brush () const
Return the brush used to fill the area between lines and the baseline.
See also:
QwtCurve::setBrush, QwtCurve::setBaseline, QwtCurve::baseline
Definition at line 196 of file qwt_curve.cpp.
Referenced by QwtPlot::curveBrush().
void QwtCurve::closePolyline (const QwtDiMap & xMap, const QwtDiMap & yMap,
QPointArray & pa) const [protected]
Complete a polygon to be a closed polygon including the area between
the original polygon and the baseline.
Parameters:
xMap X map
yMap Y map
pa Polygon to be completed
Definition at line 831 of file qwt_curve.cpp.
References QwtDiMap::transform().
Referenced by drawDots(), drawLines(), drawSpline(), and drawSteps().
void QwtCurve::copy (const QwtCurve & c) [protected]
Copy the contents of a curve into another curve.
Definition at line 36 of file qwt_curve.cpp.
References QwtData::copy(), d_data, d_options, d_pen, d_ref,
d_splineSize, d_style, d_sym, and d_title.
Referenced by operator=(), and QwtCurve().
void QwtCurve::curveChanged () [protected, virtual]
Notify a change of attributes. This virtual function is called when an
attribute of the curve has changed. It can be redefined by derived
classes. The default implementation does nothing.
Reimplemented in QwtPlotCurve.
Definition at line 927 of file qwt_curve.cpp.
Referenced by operator=(), setBaseline(), setBrush(), setData(),
setOptions(), setPen(), setRawData(), setSplineSize(), setStyle(),
setSymbol(), and setTitle().
int QwtCurve::dataSize () const
Return the size of the data arrays Definition at line 915 of file
qwt_curve.cpp.
References QwtData::size().
Referenced by QwtPlot::closestCurve(), draw(), drawCurve(),
drawSpline(), and verifyRange().
void QwtCurve::draw (QPainter * painter, const QwtDiMap & xMap, const
QwtDiMap & yMap, int from = 0, int to = -1) [virtual]
Draw an intervall of the curve.
Parameters:
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.
See also:
QwtCurve::drawCurve, QwtCurve::drawDots, QwtCurve::drawLines,
QwtCurve::drawSpline, QwtCurve::drawSteps, QwtCurve::drawSticks
Definition at line 357 of file qwt_curve.cpp.
References dataSize(), drawCurve(), drawSymbols(), QwtSymbol::style(),
and verifyRange().
Referenced by QwtPlot::drawCanvasItems(), and QwtPlot::drawCurve().
void QwtCurve::drawCurve (QPainter * painter, int style, const QwtDiMap &
xMap, const QwtDiMap & yMap, int from, int to) [protected, virtual]
Draw the line part (without symbols) of a curve interval.
Parameters:
painter Painter
style curve style, see QwtCurve::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
See also:
QwtCurve::draw, QwtCurve::drawDots, QwtCurve::drawLines,
QwtCurve::drawSpline, QwtCurve::drawSteps, QwtCurve::drawSticks
Definition at line 401 of file qwt_curve.cpp.
References dataSize(), drawDots(), drawLines(), drawSpline(),
drawSteps(), and drawSticks().
Referenced by draw().
void QwtCurve::drawDots (QPainter * painter, const QwtDiMap & xMap, const
QwtDiMap & yMap, int from, int to) [protected]
Draw dots.
Parameters:
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
See also:
QwtCurve::drawPolyline, QwtCurve::drawLine, QwtCurve::drawLines,
QwtCurve::drawSpline, QwtCurve::drawSteps QwtCurve::drawPolyline,
QwtCurve::drawPolygon
Definition at line 502 of file qwt_curve.cpp.
References closePolyline(), QwtPainter::drawPoint(),
QwtPainter::drawPolygon(), QwtDiMap::transform(), x(), and y().
Referenced by drawCurve().
void QwtCurve::drawLines (QPainter * painter, const QwtDiMap & xMap, const
QwtDiMap & yMap, int from, int to) [protected]
Draw lines.
Parameters:
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
See also:
QwtCurve::draw, QwtCurve::drawLines, QwtCurve::drawDots,
QwtCurve::drawSpline, QwtCurve::drawSteps, QwtCurve::drawSticks
Definition at line 441 of file qwt_curve.cpp.
References closePolyline(), QwtPainter::drawPolygon(),
QwtPainter::drawPolyline(), QwtDiMap::transform(), x(), and y().
Referenced by drawCurve(), and drawSpline().
void QwtCurve::drawSpline (QPainter * painter, const QwtDiMap & xMap, const
QwtDiMap & yMap) [protected]
Draw a spline.
Parameters:
painter Painter
xMap x map
yMap y map
See also:
QwtCurve::draw, QwtCurve::drawCurve, QwtCurve::drawDots,
QwtCurve::drawLines, QwtCurve::drawSteps, QwtCurve::drawSticks
Definition at line 583 of file qwt_curve.cpp.
References closePolyline(), dataSize(), drawLines(),
QwtPainter::drawPolygon(), QwtPainter::drawPolyline(), qwtSqr(),
QwtSpline::recalc(), QwtSpline::value(), x(), QwtDiMap::xTransform(),
and y().
Referenced by drawCurve().
void QwtCurve::drawSteps (QPainter * painter, const QwtDiMap & xMap, const
QwtDiMap & yMap, int from, int to) [protected]
Draw step function.
Parameters:
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
See also:
QwtCurve::draw, QwtCurve::drawCurve, QwtCurve::drawDots,
QwtCurve::drawLines, QwtCurve::drawSpline, QwtCurve::drawSticks
Definition at line 539 of file qwt_curve.cpp.
References closePolyline(), QwtPainter::drawPolygon(),
QwtPainter::drawPolyline(), QwtDiMap::transform(), x(), and y().
Referenced by drawCurve().
void QwtCurve::drawSticks (QPainter * painter, const QwtDiMap & xMap, const
QwtDiMap & yMap, int from, int to) [protected]
Draw sticks.
Parameters:
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
See also:
QwtCurve::draw, QwtCurve::drawCurve, QwtCurve::drawDots,
QwtCurve::drawLines, QwtCurve::drawSpline, QwtCurve::drawSteps
Definition at line 473 of file qwt_curve.cpp.
References QwtPainter::drawLine(), QwtDiMap::transform(), x(), and y().
Referenced by drawCurve().
void QwtCurve::drawSymbols (QPainter * painter, QwtSymbol & symbol, const
QwtDiMap & xMap, const QwtDiMap & yMap, int from, int to) [protected,
virtual]
Draw symbols.
Parameters:
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
Definition at line 865 of file qwt_curve.cpp.
References QwtSymbol::brush(), QwtSymbol::draw(), QwtSymbol::pen(),
QwtSymbol::size(), QwtDiMap::transform(), x(), and y().
Referenced by draw().
void QwtCurve::init (const QString & title) [protected]
Initialize data members.
Definition at line 22 of file qwt_curve.cpp.
Referenced by QwtCurve().
double QwtCurve::maxXValue () const
boundingRect().x2()
Definition at line 113 of file qwt_curve.h.
double QwtCurve::maxYValue () const
boundingRect().y2()
Definition at line 117 of file qwt_curve.h.
double QwtCurve::minXValue () const
boundingRect().x1()
Definition at line 111 of file qwt_curve.h.
double QwtCurve::minYValue () const
boundingRect().y1()
Definition at line 115 of file qwt_curve.h.
const QwtCurve & QwtCurve::operator= (const QwtCurve & c)
Copy Assignment.
Definition at line 69 of file qwt_curve.cpp.
References copy(), and curveChanged().
Referenced by QwtPlotCurve::operator=().
int QwtCurve::options () const
Return the current style options.
See also:
QwtCurve::setOptions
Definition at line 795 of file qwt_curve.cpp.
Referenced by QwtPlot::curveOptions().
const QPen & QwtCurve::pen () const
Return the pen used to draw the lines.
See also:
QwtCurve::setPen
Definition at line 165 of file qwt_curve.cpp.
Referenced by QwtPlotPrintFilter::apply(), QwtPlot::curvePen(),
QwtPlotPrintFilter::reset(), and QwtPlot::updateLegendItem().
void QwtCurve::setBaseline (double ref)
Set the value of the baseline.
The baseline is needed for filling the curve with a brush or the
QwtCurve::Sticks drawing style. The default value is 0.0. The
interpretation of the baseline depends on the style options. With
QwtCurve::Yfx, the baseline is interpreted as a horizontal line at y =
baseline(), with QwtCurve::Yfy, it is interpreted as a vertical line at
x = baseline().
Parameters:
ref baseline
See also:
QwtCurve::setBrush(), QwtCurve::setStyle(), QwtCurve::setOptions()
Definition at line 897 of file qwt_curve.cpp.
References curveChanged().
Referenced by QwtPlot::setCurveBaseline().
void QwtCurve::setBrush (const QBrush & brush)
Assign a brush. In case of brush.style() != QBrush::NoBrush and style()
!= QwtCurve::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).
Parameters:
brush New brush
See also:
QwtCurve::brush, QwtCurve::setBaseline, QwtCurve::baseline
Definition at line 182 of file qwt_curve.cpp.
References curveChanged().
Referenced by QwtPlot::setCurveBrush().
void QwtCurve::setData (const QwtData & data)
Initialize data with a pointer to QwtData.
Parameters:
data Data
See also:
QwtData::copy.
Definition at line 257 of file qwt_curve.cpp.
References QwtData::copy(), and curveChanged().
void QwtCurve::setData (const QwtArray< QwtDoublePoint > & data)
Initialize data with an array of points (explicitly shared).
Parameters:
data Data
See also:
QwtDoublePointData::setData.
Definition at line 243 of file qwt_curve.cpp.
References curveChanged().
void QwtCurve::setData (const QwtArray< double > & xData, const QwtArray<
double > & yData)
Initialize data with x- and y-arrays (explicitly shared).
Parameters:
xData x data
yData y data
See also:
QwtData::setData.
Definition at line 228 of file qwt_curve.cpp.
References curveChanged().
void QwtCurve::setData (const double * xData, const double * yData, int
size)
Set data by copying x- and y-values from specified memory blocks
Contrary to QwtPlot::setCurveRawData, this function makes a ’deep copy’
of the data.
Parameters:
xData pointer to x values
yData pointer to y values
size size of xData and yData
See also:
QwData::setData.
Definition at line 213 of file qwt_curve.cpp.
References curveChanged().
Referenced by QwtPlot::setCurveData().
void QwtCurve::setOptions (int opt)
Specify options for the drawing style.
The options can be used to modify the drawing style. Options can be or-
combined. The following options are defined:
QwtCurve::Auto
The default setting. For QwtCurve::spline, this means that the type
of the spline is determined automatically, depending on the data.
For all other styles, this means that y is regarded as a function
of x.
QwtCurve::Yfx
Draws y as a function of x (the default). The baseline is
interpreted as a horizontal line with y = baseline().
QwtCurve::Xfy
Draws x as a function of y. The baseline is interpreted as a
vertical line with x = baseline().
QwtCurve::Parametric
For QwtCurve::Spline only. Draws a parametric spline.
QwtCurve::Periodic
For QwtCurve::Spline only. Draws a periodic spline.
QwtCurve::Inverted
For QwtCurve::Steps only. Draws a step function from the right to
the left.
Parameters:
opt new options /sa QwtCurve::options()
Definition at line 785 of file qwt_curve.cpp.
References curveChanged().
Referenced by QwtPlot::setCurveOptions().
void QwtCurve::setPen (const QPen & p)
Assign a pen.
Parameters:
p New pen
Definition at line 152 of file qwt_curve.cpp.
References curveChanged().
Referenced by QwtPlotPrintFilter::apply(), QwtPlotPrintFilter::reset(),
and QwtPlot::setCurvePen().
void QwtCurve::setRawData (const double * xData, const double * yData, int
size)
Initialize the data by pointing to memory blocks which are not managed
by QwtCurve.
setRawData is provided for efficiency. It is important to keep the
pointers during the lifetime of the underlying QwtCPointerData class.
Parameters:
xData pointer to x data
yData pointer to y data
size size of x and y
See also:
QwtCPointerData::setData.
Definition at line 277 of file qwt_curve.cpp.
References curveChanged().
Referenced by QwtPlot::setCurveRawData().
void QwtCurve::setSplineSize (int s)
Change the number of interpolated points.
Parameters:
s new size
Warning:
The default is 250 points.
Definition at line 805 of file qwt_curve.cpp.
References curveChanged().
Referenced by QwtPlot::setCurveSplineSize().
void QwtCurve::setStyle (int style, int options = 0)
Set the curve’s drawing style.
Valid styles are:
QwtCurve::NoCurve
Don’t draw a curve. Note: This doesn’t affect the symbol.
QwtCurve::Lines
Connect the points with straight lines.
QwtCurve::Sticks
Draw vertical sticks from a baseline which is defined by
setBaseline().
QwtCurve::Steps
Connect the points with a step function. The step function is drawn
from the left to the right or vice versa, depending on the
’Inverted’ option.
QwtCurves::Dots
Draw dots at the locations of the data points. Note: This is
different from a dotted line (see setPen()).
QwtCurve::Spline
Interpolate the points with a spline. The spline type can be
specified with setOptions(), the size of the spline (= number of
interpolated points) can be specified with setSplineSize().
QwtCurve::UserCurve ...
Styles >= QwtCurve::UserCurve are reserved for derived classes of
QwtCurve that overload QwtCurve::draw() with additional application
specific curve types.
See also:
QwtCurve::style()
Definition at line 110 of file qwt_curve.cpp.
References curveChanged().
Referenced by QwtPlot::setCurveStyle().
void QwtCurve::setSymbol (const QwtSymbol & s)
Assign a symbol.
Parameters:
s symbol
See also:
QwtSymbol
Definition at line 132 of file qwt_curve.cpp.
References curveChanged().
Referenced by QwtPlotPrintFilter::apply(), QwtPlotPrintFilter::reset(),
and QwtPlot::setCurveSymbol().
void QwtCurve::setTitle (const QString & title)
Assign a title to a curve.
Parameters:
title new title
Definition at line 288 of file qwt_curve.cpp.
References curveChanged().
Referenced by QwtPlot::insertCurve(), and QwtPlot::setCurveTitle().
int QwtCurve::splineSize () const
Return the spline size.
See also:
QwtCurve::setSplineSize
Definition at line 817 of file qwt_curve.cpp.
Referenced by QwtPlot::curveSplineSize().
int QwtCurve::style () const
Return the current style.
See also:
QwtCurve::setStyle
Definition at line 122 of file qwt_curve.cpp.
Referenced by QwtPlot::curveStyle(), and QwtPlot::updateLegendItem().
const QwtSymbol & QwtCurve::symbol () const
Return the current symbol.
See also:
QwtCurve::setSymbol
Definition at line 142 of file qwt_curve.cpp.
Referenced by QwtPlotPrintFilter::apply(), QwtPlot::curveSymbol(),
QwtPlotPrintFilter::reset(), and QwtPlot::updateLegendItem().
const QString & QwtCurve::title () const
Return the title.
See also:
QwtCurve::setTitle
Definition at line 298 of file qwt_curve.cpp.
Referenced by QwtPlot::curveTitle(), and QwtPlot::updateLegendItem().
int QwtCurve::verifyRange (int & i1, int & i2) [protected]
Checks if a range of indices is valid and corrects it if necessary.
Parameters:
i1 Index 1
i2 Index 2
Definition at line 331 of file qwt_curve.cpp.
References dataSize(), qwtLim(), and qwtSort().
Referenced by draw().
double QwtCurve::x (int i) const
Parameters:
i index
Returns:
x-value at position i
Definition at line 205 of file qwt_curve.h.
Referenced by QwtPlot::closestCurve(), drawDots(), drawLines(),
drawSpline(), drawSteps(), drawSticks(), and drawSymbols().
double QwtCurve::y (int i) const
Parameters:
i index
Returns:
y-value at position i
Definition at line 214 of file qwt_curve.h.
References QwtData::y().
Referenced by QwtPlot::closestCurve(), drawDots(), drawLines(),
drawSpline(), drawSteps(), drawSticks(), and drawSymbols().
Author
Generated automatically by Doxygen for Qwt User’s Guide from the source
code.