Beispiel #1
0
        public void UpdateDisplay(bool bArea, GCDConsoleLib.GCD.UnitGroup displayUnits = null)
        {
            // Store the display units so that the user can switch between area and volume easily
            if (displayUnits != null)
            {
                DisplayUnits = displayUnits;
            }

            // Go recalc our values
            GetDisplayValues(bArea);

            Chart.Series.FindByName(EROSION).Points.DataBindXY(histoData.Values, "Elevation", histoData.Values, "Erosion");
            Chart.Series.FindByName(DEPOSITION).Points.DataBindXY(histoData.Values, "Elevation", histoData.Values, "Deposition");
            Chart.Series.FindByName(RAW).Points.DataBindXY(histoData.Values, "Elevation", histoData.Values, "Raw");

            double binWidth = _thrHist.BinWidth(Project.ProjectManager.Project.Units).As(DisplayUnits.VertUnit);

            Axis axisX = Chart.ChartAreas[0].AxisX;

            axisX.Title                    = string.Format("Elevation Change ({0})", UnitsNet.Length.GetAbbreviation(DisplayUnits.VertUnit));
            axisX.Minimum                  = _thrHist.BinLower(_thrHist.FirstBinId, Project.ProjectManager.Project.Units).As(DisplayUnits.VertUnit);
            axisX.Maximum                  = _thrHist.BinLower(_thrHist.LastBinId, Project.ProjectManager.Project.Units).As(DisplayUnits.VertUnit) + binWidth;
            axisX.MajorGrid.Interval       = 10 * binWidth;
            axisX.MajorGrid.IntervalOffset = binWidth;
            axisX.Interval                 = 10 * binWidth;
            axisX.IntervalOffset           = binWidth;
            axisX.MinorGrid.Interval       = binWidth;

            if (bArea)
            {
                Chart.ChartAreas[0].AxisY.Title = string.Format("Area ({0})", UnitsNet.Area.GetAbbreviation(DisplayUnits.ArUnit));
            }
            else
            {
                Chart.ChartAreas[0].AxisY.Title = string.Format("Volume ({0})", UnitsNet.Volume.GetAbbreviation(DisplayUnits.VolUnit));
            }

            Chart.ChartAreas[0].RecalculateAxesScale();
            Chart.ChartAreas[0].AxisY.RoundAxisValues();
        }