QwtDiMap Class Reference
Inheritance diagram for QwtDiMap:
List of all members.
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
Constructor & Destructor Documentation
|
Constructor.
The double and integer intervals are both set to [0,1]. |
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. |
|
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:
-
|
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:
-
|
double QwtDiMap::d1 |
( |
|
) |
const |
|
|
- Returns:
- the first border of the double interval
|
double QwtDiMap::d2 |
( |
|
) |
const |
|
|
- Returns:
- the second border of the double interval
|
int QwtDiMap::i1 |
( |
|
) |
const |
|
|
- Returns:
- the second border of the integer interval
|
int QwtDiMap::i2 |
( |
|
) |
const |
|
|
- Returns:
- the second border of the integer interval
|
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)
|
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
|
bool QwtDiMap::logarithmic |
( |
|
) |
const |
|
|
- Returns:
- TRUE if the double interval is scaled logarithmically
|
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 |
|
void QwtDiMap::setIntRange |
( |
int |
i1, |
|
|
int |
i2 |
|
) |
|
|
|
Specify the borders of the integer interval.
- Parameters:
-
i1 | first border |
i2 | second border |
|
int QwtDiMap::transform |
( |
double |
x |
) |
const |
|
|
Transform a point in double interval into an point in the integer interval.
- Parameters:
-
- 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.
|
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)
|
Generated on Tue Nov 25 21:15:07 2003 for Qwt User's Guide by
1.3.4