Poster of Linux kernelThe best gift for a Linux geek
QwtScaleDiv

QwtScaleDiv

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

NAME

QwtScaleDiv -  

SYNOPSIS


 

Detailed Description

A class for building scale divisions.

The QwtScaleDiv class can build linear and logarithmic scale divisions for specified intervals. It uses an adjustable algorithm to generate the major and minor step widths automatically. A scale division has a minimum value, a maximum value, a vector of major marks, and a vector of minor marks.

Warning:

QwtScaleDiv uses implicit sharing for the mark vectors.

Example.RS 4 To build a logarithmic scale division from 0.01 to 1000 and print out the major and minor marks.


#include "../include/qwt_scldiv.h>
#include <iostream.h>

main()
{
  int i,k;
  QwtScaleDiv sd;

  sd.rebuild(0.01, 100, 10, 10, TRUE, 0.0);

  k=0;
  for (i=0;i<sd.majCnt();i++)
  {
    while(k < sd.minCnt())
    {
      if (sd.minMark(k) < sd.majMark(i))
      {
        cout << " - " << sd.minMark(i) << ";
    k++;
      }
      else
        break;
    }
    cout << "-- " << sd.majMark(i) << ";
  }
  while(k < sd.minCnt())
  {
    cout << " - " << sd.minMark(i) << ";
    k++;
  }
}

Definition at line 69 of file qwt_scldiv.h.  

Public Member Functions


QwtScaleDiv ()

int operator== (const QwtScaleDiv &s) const

int operator!= (const QwtScaleDiv &s) const

double lBound () const

double hBound () const

uint minCnt () const

uint majCnt () const

bool logScale () const

double majMark (int i) const

double minMark (int i) const

double majStep () const

void reset ()

bool rebuild (double lBound, double hBound, int maxMaj, int maxMin, bool log, double step=0.0, bool ascend=TRUE)
 

Constructor & Destructor Documentation

 

QwtScaleDiv::QwtScaleDiv ()

Construct a QwtScaleDiv instance.

Definition at line 42 of file qwt_scldiv.cpp.  

Member Function Documentation

 

double QwtScaleDiv::hBound () const

Returns:

right bound

See also:

QwtScaleDiv::rebuild

Definition at line 86 of file qwt_scldiv.h.

Referenced by QwtPlot::canvasMap(), QwtPlot::print(), QwtPlotPicker::scaleRect(), QwtScaleDraw::setScale(), QwtScaleIf::setScaleMaxMajor(), and QwtScaleIf::setScaleMaxMinor().  

double QwtScaleDiv::lBound () const

Returns:

left bound

See also:

QwtScaleDiv::rebuild

Definition at line 81 of file qwt_scldiv.h.

Referenced by QwtPlot::canvasMap(), QwtPlot::print(), QwtPlotPicker::scaleRect(), QwtScaleDraw::setScale(), QwtScaleIf::setScaleMaxMajor(), and QwtScaleIf::setScaleMaxMinor().  

bool QwtScaleDiv::logScale () const

Returns:

TRUE id ths scale div is logarithmic

See also:

QwtScaleDiv::rebuild

Definition at line 102 of file qwt_scldiv.h.

Referenced by QwtPlot::canvasMap(), QwtScaleDraw::draw(), QwtScaleDraw::labelPlacement(), QwtScaleDraw::maxLabelHeight(), QwtScaleDraw::maxLabelWidth(), QwtPlot::print(), QwtScaleDraw::setScale(), QwtScaleIf::setScaleMaxMajor(), and QwtScaleIf::setScaleMaxMinor().  

uint QwtScaleDiv::majCnt () const

Returns:

major mark count

See also:

QwtScaleDiv::rebuild

Definition at line 96 of file qwt_scldiv.h.

Referenced by QwtScaleDraw::draw(), QwtGrid::draw(), QwtScaleDraw::maxLabelHeight(), QwtScaleDraw::maxLabelWidth(), QwtScaleDraw::minBorderDist(), QwtScaleDraw::minHeight(), QwtScaleDraw::minLabelDist(), QwtScaleDraw::minWidth(), QwtScaleIf::setScale(), and QwtPlot::sizeHint().  

double QwtScaleDiv::majMark (int i) const

Return major mark at position i.

Definition at line 105 of file qwt_scldiv.h.

Referenced by QwtScaleDraw::draw(), QwtGrid::draw(), QwtScaleDraw::maxLabelHeight(), QwtScaleDraw::maxLabelWidth(), QwtScaleDraw::minBorderDist(), and QwtScaleDraw::minLabelDist().  

double QwtScaleDiv::majStep () const

Returns:

major step size

See also:

QwtScaleDiv::rebuild

Definition at line 113 of file qwt_scldiv.h.

Referenced by QwtScaleDraw::draw(), QwtScaleDraw::labelPlacement(), QwtScaleDraw::maxLabelHeight(), and QwtScaleDraw::maxLabelWidth().  

uint QwtScaleDiv::minCnt () const

Returns:

minor mark count

See also:

QwtScaleDiv::rebuild

Definition at line 91 of file qwt_scldiv.h.

Referenced by QwtScaleDraw::draw(), QwtGrid::draw(), QwtScaleDraw::minHeight(), QwtScaleDraw::minWidth(), and QwtScaleIf::setScale().  

double QwtScaleDiv::minMark (int i) const

Return minor mark at position i.

Definition at line 107 of file qwt_scldiv.h.

Referenced by QwtScaleDraw::draw(), and QwtGrid::draw().  

int QwtScaleDiv::operator!= (const QwtScaleDiv & s) const

Inequality.

Returns:

TRUE if this instance is not equal to s

Definition at line 439 of file qwt_scldiv.cpp.  

int QwtScaleDiv::operator== (const QwtScaleDiv & s) const

Equality operator.

Returns:

TRUE if this instance is equal to s

Definition at line 425 of file qwt_scldiv.cpp.

References d_hBound, d_lBound, d_log, d_majMarks, d_majStep, and d_minMarks.  

bool QwtScaleDiv::rebuild (double x1, double x2, int maxMajSteps, int maxMinSteps, bool log, double step = 0.0, bool ascend = TRUE)

Build a scale width major and minor divisions If no fixed step width is specified or if it is set to 0, the major step width will be calculated automatically according to the the value of maxMajSteps. The maxMajSteps parameter has no effect if a fixed step size is specified. The minor step width is always calculated automatically.

If the step width is to be calculated automatically, the algorithm tries to find reasonable values fitting into the scheme {1,2,5}*10^n with an integer number n for linear scales.

For logarithmic scales, there are three different cases .PD 0

1.
If the major step width is one decade, the minor marks will fit into one of the schemes {1,2,...9}, {2,4,6,8}, {2,5} or {5}, depending on the maxMinSteps parameter.
2.
If the major step size spans more than one decade, the minor step size will be {1,2,5}*10^n decades with a natural number n.
3.
If the whole range is less than one decade, a linear scale division will be built.

Parameters:

x1 first boundary value
x2 second boundary value
maxMajSteps max. number of major step intervals
maxMinSteps max. number of minor step intervals
log logarithmic division (TRUE/FALSE)
step fixed major step width. Defaults to 0.0.
ascend if TRUE, sort in ascending order from min(x1, x2) to max(x1, x2). If FALSE, sort in the direction from x1 to x2. Defaults to TRUE.

Returns:

True if the arrays have been allocated successfully.

Warning:

For logarithmic scales, the step width is measured in decades.

Definition at line 86 of file qwt_scldiv.cpp.

Referenced by QwtAutoScale::build(), QwtAutoScale::buildLinScale(), QwtAutoScale::buildLogScale(), and QwtScaleDraw::setScale().  

void QwtScaleDiv::reset ()

Detach the shared data and set everything to zero.

Definition at line 445 of file qwt_scldiv.cpp.

Referenced by QwtAutoScale::reset().

 

Author

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


 

Index

NAME
SYNOPSIS
Detailed Description
Public Member Functions
Constructor & Destructor Documentation
QwtScaleDiv::QwtScaleDiv ()
Member Function Documentation
double QwtScaleDiv::hBound () const
double QwtScaleDiv::lBound () const
bool QwtScaleDiv::logScale () const
uint QwtScaleDiv::majCnt () const
double QwtScaleDiv::majMark (int i) const
double QwtScaleDiv::majStep () const
uint QwtScaleDiv::minCnt () const
double QwtScaleDiv::minMark (int i) const
int QwtScaleDiv::operator!= (const QwtScaleDiv & s) const
int QwtScaleDiv::operator== (const QwtScaleDiv & s) const
bool QwtScaleDiv::rebuild (double x1, double x2, int maxMajSteps, int maxMinSteps, bool log, double step = 0.0, bool ascend = TRUE)
void QwtScaleDiv::reset ()
Author

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