diff options
| author | Jacob Palecki <[email protected]> | 2020-09-16 20:42:37 -0700 |
|---|---|---|
| committer | Jacob Palecki <[email protected]> | 2020-09-16 20:42:37 -0700 |
| commit | 82b49b149f998a878375e6158e97667a9ea26097 (patch) | |
| tree | c6dbdb4a3c3354fdca4ba7b1c533490ffebcba79 | |
| parent | Fix cap options pt 2 (diff) | |
| download | rawaccel-82b49b149f998a878375e6158e97667a9ea26097.tar.xz rawaccel-82b49b149f998a878375e6158e97667a9ea26097.zip | |
Fix chart scaling for DPIs < 1200
| -rw-r--r-- | grapher/Models/Calculations/AccelCalculator.cs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/grapher/Models/Calculations/AccelCalculator.cs b/grapher/Models/Calculations/AccelCalculator.cs index 092a7aa..4627732 100644 --- a/grapher/Models/Calculations/AccelCalculator.cs +++ b/grapher/Models/Calculations/AccelCalculator.cs @@ -46,6 +46,8 @@ namespace grapher.Models.Calculations private double XYMaxVelocity { get; set; } private int Increment { get; set; } + + private double MeasurementTime { get; set; } #endregion Fields @@ -62,14 +64,14 @@ namespace grapher.Models.Calculations Calculate(data.Y, accel, settings.sensitivity.y, MagnitudesY); } - public static void Calculate(AccelChartData data, ManagedAccel accel, double starter, ICollection<MagnitudeData> magnitudeData) + public void Calculate(AccelChartData data, ManagedAccel accel, double starter, ICollection<MagnitudeData> magnitudeData) { double lastInputMagnitude = 0; double lastOutputMagnitude = 0; foreach (var magnitudeDatum in magnitudeData) { - var output = accel.Accelerate(magnitudeDatum.x, magnitudeDatum.y, 1); + var output = accel.Accelerate(magnitudeDatum.x, magnitudeDatum.y, MeasurementTime); var outMagnitude = Magnitude(output.Item1, output.Item2); var ratio = magnitudeDatum.magnitude > 0 ? outMagnitude / magnitudeDatum.magnitude : starter; @@ -176,7 +178,9 @@ namespace grapher.Models.Calculations { var dpiPollFactor = DPI.Data / PollRate.Data; CombinedMaxVelocity = dpiPollFactor * Constants.MaxMultiplier; - Increment = (int)Math.Floor(CombinedMaxVelocity / Constants.Resolution); + var ratio = CombinedMaxVelocity / Constants.Resolution; + Increment = ratio > 1 ? (int) Math.Floor(ratio) : 1; + MeasurementTime = Increment == 1 ? 1 / ratio : 1; XYMaxVelocity = CombinedMaxVelocity * Constants.XYToCombinedRatio; MagnitudesCombined = GetMagnitudes(); MagnitudesX = GetMagnitudesX(); |