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

QwtCurve Class Reference

A class which draws curves. More...

#include <qwt_curve.h>

Inheritance diagram for QwtCurve::

QwtPlotCurve List of all members.

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 Methods

 QwtCurve (const QString &title=QString::null)
 QwtCurve (const QwtCurve &c)
virtual ~QwtCurve ()
virtual const QwtCurve & operator= (const QwtCurve &c)
void setRawData (double *x, double *y, int size)
void setData (double *x, double *y, int size)
int dataSize () const
double x (int i) const
double y (int i) const
virtual double minXValue () const
virtual double maxXValue () const
virtual double minYValue () const
virtual double maxYValue () const
void setOptions (int t)
int options () const
void setTitle (const QString &title)
const QString & title () const
void setPen (const QPen &p)
const QPen & pen () 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)

Static Public Methods

void drawPoint (QPainter *, int x, int y)
void drawLine (QPainter *, int x1, int y1, int x2, int y2)
void drawPolyline (QPainter *, const QPointArray &)

Protected Methods

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)
virtual void curveChanged ()
int verifyRange (int &i1, int &i2)

Protected Attributes

bool d_raw
QArray< double > d_x
QArray< double > d_y
QwtSpline d_spx
QwtSpline d_spy

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 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 assigned in two ways:
  • QwtCurve::setData() copies the x and y data from the specified arrays into its internal buffer.
  • QwtCurve::setRawData() does not make a copy of the data, but only stores the pointers and size information instead. This function is less safe (you must not delete the data while they are attached), but more efficient, and more convenient if the data change dynamically.
C. Draw
QwtCurve::drawCurve() maps the curve points into pixel coordinates and paints them.
Example:
see examples/curvdemo
See also:
QwtSymbol, QwtDiMap


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.

Warning:
If curve c has attached its data in raw mode (see QwtCurve::setRawData), the copy constructor creates a deep copy of the data. The data are implicitly shared otherwise.

QwtCurve::~QwtCurve (    )  [virtual]
 

Dtor.


Member Function Documentation

double QwtCurve::baseline (    )  const
 

Return the value of the baseline.

See also:
QwtCurve::setBaseline

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:
p  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:
qwt_drawPoint, qwt_drawLine, qwt_drawPolyline

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
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:
qwt_drawPoint, qwt_drawLine, qwt_drawPolyline

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:
qwt_drawPoint, qwt_drawLine, qwt_drawPolyline

void QwtCurve::drawLine (  QPainter *    painter,
int    x1,
int    y1,
int    x2,
int    y2
)  [static]
 

Wrapper for painter->drawLine(x1, y1, x2, y2). On X11 the cutting points with [-16384 .. 16384] will be calculated. Everything outside will be skipped to avoid overruns.

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:
qwt_drawPoint, qwt_drawLine, qwt_drawPolyline

void QwtCurve::drawPoint (  QPainter *    painter,
int    x,
int    y
)  [static]
 

Wrapper for painter->drawPoint(x, y). On X11 points outside [-16384 .. 16384] will be skipped to avoid overruns.

void QwtCurve::drawPolyline (  QPainter *    painter,
const QPointArray &    pa
)  [static]
 

Wrapper for painter->drawPolyline(x1, y1, x2, y2). On X11 the cutting points with [-16384 .. 16384] will be calculated. Everything outside will be skipped to avoid overruns.

void QwtCurve::drawSpline (  QPainter *    painter,
const QwtDiMap &    xMap,
const QwtDiMap &    yMap
)  [protected]
 

Draw a spline.

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:
qwt_drawPoint, qwt_drawLine, qwt_drawPolyline

void QwtCurve::drawSteps (  QPainter *    painter,
const QwtDiMap &    xMap,
const QwtDiMap &    yMap,
int    from,
int    to
)  [protected]
 

Draw step function.

Parameters:
p  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:
qwt_drawPoint, qwt_drawLine, qwt_drawPolyline

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:
qwt_drawPoint, qwt_drawLine, qwt_drawPolyline

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 [virtual]
 

find the largest x value.

double QwtCurve::maxYValue (    )  const [virtual]
 

find the largest y value.

double QwtCurve::minXValue (    )  const [virtual]
 

find the smallest x value.

double QwtCurve::minYValue (    )  const [virtual]
 

find the smallest y value.

const QwtCurve & QwtCurve::operator= (  const QwtCurve &    c )  [virtual]
 

Copy Assignment.

Warning:
If curve c has attached its data in raw mode, the assignment operator creates a deep copy of the data. The data are implicitly shared otherwise.
See also:
QwtCurve::setRawData()

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 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::setStyle(), QwtCurve::setOptions()

void QwtCurve::setData (  double *    x,
double *    y,
int    size
) 
 

Copy x-y data from specified arrays.

Parameters:
x  pointer to x data
y  pointer to y data
size  size of x and y

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 (  double *    x,
double *    y,
int    size
) 
 

Attach raw data.

setRawData is provided for efficiency. In contrast to setData, it does not copy the data, so it is important to keep the pointers valid while they are attached.

The QwtCurve destructor does not delete the attached data, so you can safely call setRawData and setData several times subsequently.

Parameters:
x  pointer to x data
y  pointer to y data
size  size of x and y

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 May 28 15:30:57 2002 for Qwt User's Guide by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001