Poster of Linux kernelThe best gift for a Linux geek
QwtDiMap

QwtDiMap

Section: Qwt User's Guide (3) Updated: 16 Nov 2004
Local index Up
 

NAME

QwtDiMap -  

SYNOPSIS


Inherited by QwtScaleDraw.

 

Detailed Description

Map a double interval into an integer interval.

The QwtDiMap class maps an interval of type double into an interval of type int. It consists of two intervals D = [d1, d2] (double) and I = [i1, i2] (int), which are specified with the QwtDiMap::setDblRange and QwtDiMap::setIntRange members. The point d1 is mapped to the point i1, and d2 is mapped to i2. Any point inside or outside D can be mapped to a point inside or outside I using QwtDiMap::transform or QwtDiMap::limTransform or vice versa using QwtPlot::invTransform. D can be scaled linearly or logarithmically, as specified with QwtDiMap::setDblRange.

Usage


#include <qwt_dimap.h>

QwtDiMap map;
int ival;
double dval;

map.setDblRange(0.0, 3.1415);   // Assign an interval of type double with
                // linear mapping
map.setIntRange(0,100);         // Assign an integer interval

ival = map.transform(1.0);      // obtain integer value corresponding to 1.0
dval = map.invTransform(77);    // obtain double value corresponding to 77

Definition at line 46 of file qwt_dimap.h.  

Public Member Functions


QwtDiMap ()

QwtDiMap (int i1, int i2, double d1, double d2, bool lg=FALSE)

~QwtDiMap ()

bool contains (double x) const

bool contains (int x) const

void setIntRange (int i1, int i2)

void setDblRange (double d1, double d2, bool lg=FALSE)

int transform (double x) const

double invTransform (int i) const

int limTransform (double x) const

double xTransform (double x) const

double d1 () const

double d2 () const

int i1 () const

int i2 () const

bool logarithmic () const
 

Public Attributes


QT_STATIC_CONST double LogMin = 1.0e-150

QT_STATIC_CONST double LogMax = 1.0e150
 

Constructor & Destructor Documentation

 

QwtDiMap::QwtDiMap ()

Constructor.

The double and integer intervals are both set to [0,1]. Definition at line 20 of file qwt_dimap.cpp.  

QwtDiMap::QwtDiMap (int i1, int i2, double d1, double d2, bool logarithmic = FALSE)

Constructor.

Constructs a QwtDiMap instance with initial integer and double intervals

Parameters:

i1 first border of integer interval
i2 second border of integer interval
d1 first border of double interval
d2 second border of double interval
logarithmic logarithmic mapping, TRUE or FALSE.

Definition at line 43 of file qwt_dimap.cpp.

References setDblRange().  

QwtDiMap::~QwtDiMap ()

Destructor.

Definition at line 54 of file qwt_dimap.cpp.  

Member Function Documentation

 

bool QwtDiMap::contains (int x) const

Returns:

TRUE if a value x lies inside or at the border of the map's integer range

Parameters:

x value

Definition at line 73 of file qwt_dimap.cpp.  

bool QwtDiMap::contains (double x) const

Returns:

TRUE if a value x lies inside or at the border of the map's double range.

Parameters:

x value

Definition at line 63 of file qwt_dimap.cpp.  

double QwtDiMap::d1 () const

Returns:

the first border of the double interval

Definition at line 86 of file qwt_dimap.h.

Referenced by QwtSlider::getValue(), and QwtSlider::xyPosition().  

double QwtDiMap::d2 () const

Returns:

the second border of the double interval

Definition at line 94 of file qwt_dimap.h.

Referenced by QwtSlider::getValue(), and QwtSlider::xyPosition().  

int QwtDiMap::i1 () const

Returns:

the second border of the integer interval

Definition at line 102 of file qwt_dimap.h.

Referenced by QwtScaleDraw::drawBackbone(), QwtSlider::getScrollMode(), QwtSlider::getValue(), and QwtSlider::xyPosition().  

int QwtDiMap::i2 () const

Returns:

the second border of the integer interval

Definition at line 110 of file qwt_dimap.h.

Referenced by QwtScaleDraw::drawBackbone(), QwtSlider::getScrollMode(), QwtSlider::getValue(), and QwtSlider::xyPosition().  

double QwtDiMap::invTransform (int y) const

Transform an integer value into a double value.

Parameters:

y integer value to be transformed

Returns:

linear mapping:
d1 + (d2 - d1) / (i2 - i1) * (y - i1)
logarithmic mapping:
d1 + (d2 - d1) / log(i2 / i1) * log(y / i1)

Definition at line 132 of file qwt_dimap.cpp.

Referenced by QwtSlider::getValue(), QwtPlotPicker::invTransform(), and QwtPlot::invTransform().  

int QwtDiMap::limTransform (double x) const

Transform and limit.

The function is similar to QwtDiMap::transform, but limits the input value to the nearest border of the map's double interval if it lies outside that interval.

Parameters:

x value to be transformed

Returns:

transformed value

Definition at line 155 of file qwt_dimap.cpp.

References transform().

Referenced by QwtThermo::drawThermo().  

bool QwtDiMap::logarithmic () const

Returns:

TRUE if the double interval is scaled logarithmically

Definition at line 118 of file qwt_dimap.h.  

void QwtDiMap::setDblRange (double d1, double d2, bool lg = FALSE)

Specify the borders of the double interval.

Parameters:

d1 first border
d2 second border
lg logarithmic (TRUE) or linear (FALSE) scaling

Definition at line 84 of file qwt_dimap.cpp.

Referenced by QwtPlot::canvasMap(), QwtDiMap(), QwtThermo::setRange(), and QwtScaleDraw::setScale().  

void QwtDiMap::setIntRange (int i1, int i2)

Specify the borders of the integer interval.

Parameters:

i1 first border
i2 second border

Definition at line 116 of file qwt_dimap.cpp.

Referenced by QwtPlot::canvasMap(), QwtSlider::layoutSlider(), QwtThermo::layoutThermo(), QwtScaleDraw::setAngleRange(), and QwtScaleDraw::setGeometry().  

int QwtDiMap::transform (double x) const

Transform a point in double interval into an point in the integer interval.

Parameters:

x value

Returns:

linear mapping:
rint(i1 + (i2 - i1) / (d2 - d1) * (x - d1))
logarithmic mapping:
rint(i1 + (i2 - i1) / log(d2 / d1) * log(x / d1))

Warning:

The specified point is allowed to lie outside the intervals. If you want to limit the returned value, use QwtDiMap::limTransform.

Definition at line 136 of file qwt_dimap.h.

Referenced by QwtCurve::closePolyline(), QwtGrid::draw(), QwtCurve::drawDots(), QwtCurve::drawLines(), QwtCurve::drawSteps(), QwtCurve::drawSticks(), QwtCurve::drawSymbols(), QwtScaleDraw::drawTick(), QwtScaleDraw::labelPlacement(), limTransform(), QwtPlotPicker::transform(), QwtPlot::transform(), and QwtSlider::xyPosition().  

double QwtDiMap::xTransform (double x) const

Exact transformation.

This function is similar to QwtDiMap::transform, but makes the integer interval appear to be double.

Parameters:

x value to be transformed

Returns:

linear mapping:
i1 + (i2 - i1) / (d2 - d1) * (x - d1)
logarithmic mapping:
i1 + (i2 - i1) / log(d2 / d1) * log(x / d1)

Definition at line 185 of file qwt_dimap.cpp.

Referenced by QwtPlot::closestCurve(), QwtPlot::closestMarker(), and QwtCurve::drawSpline().

 

Author

Generated automatically by Doxygen for Qwt User's Guide from the source code.


 

Index

NAME
SYNOPSIS
Detailed Description
Public Member Functions
Public Attributes
Constructor & Destructor Documentation
QwtDiMap::QwtDiMap ()
QwtDiMap::QwtDiMap (int i1, int i2, double d1, double d2, bool logarithmic = FALSE)
QwtDiMap::~QwtDiMap ()
Member Function Documentation
bool QwtDiMap::contains (int x) const
bool QwtDiMap::contains (double x) const
double QwtDiMap::d1 () const
double QwtDiMap::d2 () const
int QwtDiMap::i1 () const
int QwtDiMap::i2 () const
double QwtDiMap::invTransform (int y) const
int QwtDiMap::limTransform (double x) const
bool QwtDiMap::logarithmic () const
void QwtDiMap::setDblRange (double d1, double d2, bool lg = FALSE)
void QwtDiMap::setIntRange (int i1, int i2)
int QwtDiMap::transform (double x) const
double QwtDiMap::xTransform (double x) const
Author

This document was created by man2html, using the manual pages.
Time: 21:53:51 GMT, April 16, 2011