Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

QwtCurve Class Reference

Inheritance diagram for QwtCurve:

QwtPlotCurve List of all members.

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
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:
  • 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:
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 QwtCurveoperator= (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 QwtSymbolsymbol () 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

enum QwtCurve::CurveStyle
 

Curve styles.

See also:
QwtCurve::setStyle


Constructor & Destructor Documentation

QwtCurve::QwtCurve const QString &  title = QString::null  ) 
 

Ctor.

Parameters:
title title of the curve

QwtCurve::QwtCurve const QwtCurve c  ) 
 

Copy Constructor.

QwtCurve::~QwtCurve  )  [virtual]
 

Dtor.


Member Function Documentation

double QwtCurve::baseline  )  const
 

Return the value of the baseline.

See also:
QwtCurve::setBaseline

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

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

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

void QwtCurve::copy const QwtCurve c  )  [protected]
 

Copy the contents of a curve into another curve.

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.

int QwtCurve::dataSize  )  const
 

Return the size of the data arrays

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

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

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

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

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

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

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

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

void QwtCurve::init const QString &  title  )  [protected]
 

Initialize data members.

double QwtCurve::maxXValue  )  const
 

boundingRect().x2()

double QwtCurve::maxYValue  )  const
 

boundingRect().y2()

double QwtCurve::minXValue  )  const
 

boundingRect().x1()

double QwtCurve::minYValue  )  const
 

boundingRect().y1()

const QwtCurve & QwtCurve::operator= const QwtCurve c  ) 
 

Copy Assignment.

int QwtCurve::options  )  const
 

Return the current style options.

See also:
QwtCurve::setOptions

const QPen & QwtCurve::pen  )  const
 

Return the pen used to draw the lines.

See also:
QwtCurve::setPen

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()

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

void QwtCurve::setData const QwtData data  ) 
 

Initialize data with a pointer to QwtData.

Parameters:
data Data
See also:
QwtData::copy.

void QwtCurve::setData const QwtArray< QwtDoublePoint > &  data  ) 
 

Initialize data with an array of points (explicitly shared).

Parameters:
data Data
See also:
QwtDoublePointData::setData.

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.

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.

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()

void QwtCurve::setPen const QPen &  p  ) 
 

Assign a pen.

Parameters:
p New pen

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.

void QwtCurve::setSplineSize int  s  ) 
 

Change the number of interpolated points.

Parameters:
s new size
Warning:
The default is 250 points.

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()

void QwtCurve::setSymbol const QwtSymbol s  ) 
 

Assign a symbol.

Parameters:
s symbol
See also:
QwtSymbol

void QwtCurve::setTitle const QString &  title  ) 
 

Assign a title to a curve.

Parameters:
title new title

int QwtCurve::splineSize  )  const
 

Return the spline size.

See also:
QwtCurve::setSplineSize

int QwtCurve::style  )  const
 

Return the current style.

See also:
QwtCurve::setStyle

const QwtSymbol & QwtCurve::symbol  )  const
 

Return the current symbol.

See also:
QwtCurve::setSymbol

const QString & QwtCurve::title  )  const
 

Return the title.

See also:
QwtCurve::setTitle

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

double QwtCurve::x int  i  )  const
 

Parameters:
i index
Returns:
x-value at position i

double QwtCurve::y int  i  )  const
 

Parameters:
i index
Returns:
y-value at position i


Generated on Tue Nov 4 09:53:46 2003 for Qwt User's Guide by doxygen 1.3.4