using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Microsoft.Research.DynamicDataDisplay.Charts.Axes.Numeric { internal sealed class NumericConversion { private readonly double min; private readonly double length; private readonly double minValue; private readonly double valueLength; public NumericConversion(double min, double minValue, double max, double maxValue) { this.min = min; this.length = max - min; this.minValue = minValue; this.valueLength = maxValue - minValue; } public double FromDouble(double value) { double ratio = (value - min) / length; return minValue + ratio * valueLength; } public double ToDouble(double value) { double ratio = (value - minValue) / valueLength; return min + length * ratio; } } }