Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > ZedGraph масштаб осей


Автор: jorikdima 18.12.2008, 23:59
Приветствую. 
Пытаюсь освоить ZedGraph компонент. И вот несколько часов не могу разобраться с ручным масштабированием осей, в частности оси X
Код

private void ScalesChanges()
        {
            Scale curScale;
            curScale = pane.XAxis.Scale;

            curScale.Min = (XDate)refDate;
            curScale.MajorStepAuto = false;
            curScale.MinorStepAuto = false;
            curScale.MinorStep = 8 / 250;
            curScale.MajorStep = 8 / 25;
            curScale.Max = (XDate)refDate.AddSeconds(8);
        }


Код

private void Init()
        {
            pane = this.GraphPane;
            pane.XAxis.Type = AxisType.Date;            
            pane.YAxis.Type = AxisType.Linear;

            
            pane.YAxis.MajorGrid.IsVisible = true;
            pane.YAxis.MajorGrid.DashOff = 0;
            pane.YAxis.MajorGrid.DashOn = 0;
            pane.YAxis.MajorGrid.PenWidth = 2;
            pane.YAxis.MajorGrid.Color = System.Drawing.Color.Blue;

            pane.YAxis.MinorGrid.IsVisible = true;
            pane.YAxis.MinorGrid.DashOff = 0;
            pane.YAxis.MinorGrid.DashOn = 0;
            pane.YAxis.MinorGrid.PenWidth = 1;
            pane.YAxis.MinorGrid.Color = System.Drawing.Color.Blue;


            pane.XAxis.MajorGrid.IsVisible = true;
            pane.XAxis.MajorGrid.DashOff = 0;
            pane.XAxis.MajorGrid.DashOn = 0;
            pane.XAxis.MajorGrid.PenWidth = 2;
            pane.XAxis.MajorGrid.Color = System.Drawing.Color.Blue;

            
            pane.XAxis.MinorGrid.IsVisible = true;            
            pane.XAxis.MinorGrid.DashOff = 0;
            pane.XAxis.MinorGrid.DashOn = 0;
            pane.XAxis.MinorGrid.PenWidth = 1;
            pane.XAxis.MinorGrid.Color = System.Drawing.Color.Blue;


            pane.XAxis.Scale.MajorUnit = DateUnit.Second;
            pane.XAxis.Scale.MinorUnit = DateUnit.Second;

         
            refDate = (XDate)DateTime.Now;

            ScalesChanges();

            pane.Title.IsVisible = false;
            pane.XAxis.Title.IsVisible = false;
            pane.YAxis.Title.IsVisible = false;
            
            AxisChange();
            Invalidate();
        }

Это Код. И вот объясните мне плиз, какого фига он мне все это рисует вот так:
http://ipicture.ru/
Вот то, что длительность графика 8 секунд это верно. Но почему Major шкала 5 секунд, а не 8/25 секунды. И почему Minir шкала неверная, даже отношение шага шкал Minor и Major не верное, не такое как я задавал.
Когда я использую Linear шкалу то у меня не возникло проблем, но мне нужна шкала времени.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)