# QwtScaleTransformation Class Reference

Operations for linear or logarithmic (base 10) transformations. More...

`#include <qwt_scale_map.h>`

List of all members.

## Public Types
enum | Type { Linear, Log10, Other }
## Public Member Functions
| QwtScaleTransformation (Type type)
virtual | ~QwtScaleTransformation ()
virtual double | xForm (double x, double s1, double s2, double p1, double p2) const
virtual double | invXForm (double x, double s1, double s2, double p1, double p2) const
Type | type () const
virtual QwtScaleTransformation * | copy () const

## Detailed Description

Operations for linear or logarithmic (base 10) transformations.

## Constructor & Destructor Documentation

QwtScaleTransformation::QwtScaleTransformation | ( | Type | type | ) |

Constructor for a linear transformation.

QwtScaleTransformation::~QwtScaleTransformation | ( |  | ) | `[virtual]`

Destructor.

## Member Function Documentation

QwtScaleTransformation * QwtScaleTransformation::copy | ( |  | ) | const`[virtual]`

Create a clone of the transformation.

double QwtScaleTransformation::invXForm | ( | double | p,
|  | double | p1,
|  | double | p2,
|  | double | s1,
|  | double | s2 |
| ) |  |  | const`[virtual]`

Transform a value from a linear to a logarithmic interval.

Parameters:

  | p | value related to the linear interval [p1, p2]
  | p1 | first border of linear interval
  | p2 | second border of linear interval
  | s1 | first border of logarithmic interval
  | s2 | second border of logarithmic interval

Returns:
  exp((p - p1) / (p2 - p1) * log(s2 / s1)) * s1;

QwtScaleTransformation::Type QwtScaleTransformation::type | ( |  | ) | const`[inline]`

Returns:
  Transformation type

double QwtScaleTransformation::xForm | ( | double | s,
|  | double | s1,
|  | double | s2,
|  | double | p1,
|  | double | p2 |
| ) |  |  | const`[virtual]`

Transform a value between 2 linear intervals.

Parameters:

  | s | value related to the interval [s1, s2]
  | s1 | first border of scale interval
  | s2 | second border of scale interval
  | p1 | first border of target interval
  | p2 | second border of target interval

Returns:
  linear mapping:
    p1 + (p2 - p1) / (s2 - s1) * (s - s1)
  log10 mapping:
    p1 + (p2 - p1) / log(s2 / s1) * log(s / s1)