diff --git a/isometric-park-fna/UI/Graph.cs b/isometric-park-fna/UI/Graph.cs --- a/isometric-park-fna/UI/Graph.cs +++ b/isometric-park-fna/UI/Graph.cs @@ -127,8 +127,26 @@ public static Num.Vector2 adjust_domain(int domain_min, int domain_max) { - if (domain_min != domain_max) { - return new Num.Vector2(domain_min, domain_max); + if (domain_max == int.MinValue) { + return adjust_domain(0, 0); + } + else if (domain_min != domain_max) { + //Significant-digits based rounding (kinda): + // var orders_to_round = 4; + // var orders = (int)Math.Log10(domain_max); + // var domain_max_rounded = Math.Round(domain_max / Math.Pow(10, orders - orders_to_round)) * Math.Pow(10, orders - orders_to_round); + //Round so breaks are even (in theory): + var domain_max_rounded = Math.Ceiling(domain_max / 50.0) * 50; + var domain_min_rounded = Math.Floor(domain_min / 50.0) * 50; + + //Throw out rounding if result is too close together: + if (domain_min_rounded != domain_max_rounded) { + return new Num.Vector2((float)domain_min_rounded, (float)domain_max_rounded); + } + else { + return new Num.Vector2(domain_min, domain_max); + } + } else { var lower = MathUtils.Clamp(domain_min, 0, 100);