public double getPositionFromValue(final double _v) { return XMath.log10(_v) * scale_ + offset_; }
/** * Initialise l'itrateur. * * @param _minimum Valeur minimale de la premire graduation. * @param _maximum Valeur limite des graduations. La dernire graduation n'aura pas ncessairement cette valeur. * @param _visualLength Longueur visuelle de l'axe sur laquelle tracer la graduation. Cette longueur doit tre * exprime en pixels ou en points. * @param _visualTickSpacing Espace laisser visuellement entre deux marques de graduation. Cet espace doit tre * exprim en pixels ou en points (1/72 de pouce). */ protected void init(final double _minimum, final double _maximum, final float _visualLength, final float _visualTickSpacing) { double mini = _minimum; if (_minimum == 0) { mini = 1E-15; } final double logMin = XMath.log10(mini); final double logMax = XMath.log10(_maximum); super.init(logMin, logMax, _visualLength, _visualTickSpacing); scale_ = (_maximum - mini) / (logMax - logMin); offset_ = mini - scale_ * logMin; }
public String formatValue(final double _v) { if (!isValid()) { currentLabel(); } int log10 = (int) Math.floor(XMath.log10(_v)); if (log10 < 0) { log10 = -log10; final int oldr = format_.getMaximumFractionDigits(); if (oldr < log10) { format_.setMaximumFractionDigits(log10); final String r = format_.format(_v); format_.setMaximumFractionDigits(oldr); return r; } } return super.formatValue(_v); }
public String formatSubValue(final double _v) { if (!isValid()) { currentLabel(); } if (subFormat_ == null) { buildSubFormat(); } int log10 = (int) Math.floor(XMath.log10(_v)); if (log10 < 0) { log10 = -log10 + 1; final int oldr = subFormat_.getMaximumFractionDigits(); if (oldr < log10) { subFormat_.setMaximumFractionDigits(log10); final String r = subFormat_.format(_v); subFormat_.setMaximumFractionDigits(oldr); return r; } } return super.formatValue(_v); }
if (minimum_ < 1E-3 && minimum_ > -1E-3 && step <= 1E-3 && !format_.isParseIntegerOnly()) { sci = true; step = step * XMath.pow10(-XMath.log10(step));
final double factor = XMath.pow10((int) Math.floor(XMath.log10(incrementTmp))); incrementTmp /= factor; if (Double.isNaN(incrementTmp) || Double.isInfinite(incrementTmp) || incrementTmp == 0) {