---
name: "QwtDiMap"
section: "3"
platform: "linux"
package: "libqwt-doc"
version: "4.2.0-6"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/QwtDiMap"
---

# QwtDiMap(3)

## 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.
