30 return QObject::tr(
"Equal Interval" );
38 QList<double> QgsClassificationEqualInterval::calculateBreaks(
double &minimum,
double &maximum,
39 const QList<double> &values,
int nclasses )
48 double step = ( maximum - minimum ) / nclasses;
50 double value = minimum;
51 breaks.reserve( nclasses );
52 for (
int i = 0; i < nclasses; i++ )
59 breaks[nclasses - 1] = maximum;
63 double distBelowSymmetricValue = std::abs( minimum -
symmetryPoint() );
64 double distAboveSymmetricValue = std::abs( maximum -
symmetryPoint() ) ;
68 if ( nclasses % 2 == 0 )
73 if ( nclasses % 2 == 1 )
76 double step = 2 * std::min( distBelowSymmetricValue, distAboveSymmetricValue ) / nclasses;
78 breaks.reserve( nclasses );
79 double value = ( distBelowSymmetricValue < distAboveSymmetricValue ) ? minimum : maximum - nclasses * step;
81 for (
int i = 0; i < nclasses; i++ )
86 breaks[nclasses - 1] = maximum;