using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IStation.Model { /// /// 系数的坐标系 /// public class RatioAxisCalculator : IAxisCalculator { /// /// /// public RatioAxisCalculator() { } /// /// /// public RatioAxisCalculator(double ratio) { this.Ratio = ratio; } /// /// 系数 /// public double Ratio { get { return _ratio; } private set { _ratio = value; } } private double _ratio = 1; /// /// 计算 /// public double Calculate(double v) { if (_ratio == 1) return v; var trn_v = v * _ratio; if (trn_v > 8) { var int_trn_v = Math.Round(trn_v, 0); if (Math.Abs(int_trn_v - trn_v) < 0.02) trn_v = int_trn_v; } return trn_v; } /// /// 反算 /// public double RevCalculate(double v) { if (_ratio == 1) return v; var trn_v = v / _ratio; if (trn_v > 8) { var int_trn_v = Math.Round(trn_v, 0); if (Math.Abs(int_trn_v - trn_v) < 0.02) trn_v = int_trn_v; } return trn_v; } } }