コード例 #1
0
        /// <summary>
        /// обновление графиков на основе заданных stat_speeds и stat_directions
        /// </summary>
        private void drawGraphs()
        {
            if (stat_directions == null || stat_speeds == null)
            {
                return;
            }
            //РАСПРЕДЕЛНИЕ СКОРОСТЕЙ ВЕТРА
            GraphPane spane = zedGraphControlSpeed.GraphPane;

            spane.Title.Text       = "t(V), %";
            spane.XAxis.Title.Text = "Vj, м/с";
            spane.YAxis.Title.Text = "t(V), %";
            spane.GraphObjList.Clear();
            spane.CurveList.Clear();
            PointPairList slist = new PointPairList();

            for (int i = 0; i < stat_speeds.Values.Count; i++)
            {
                slist.Add((stat_speeds.Keys[i] as GradationItem).Average, stat_speeds.Values[i] * 100);
            }
            _ = spane.AddCurve("t(V)", slist, Color.Red);
            zedGraphControlSpeed.AxisChange();
            zedGraphControlSpeed.Invalidate();

            //РАСПРЕДЕЛЕНИЕ НАПРАВЛЕНИЙ
            RadarPointList dlist = new RadarPointList();
            GraphPane      dpane = zedGraphControlDirection.GraphPane;

            dpane.Title.Text                 = "t(DD), %";
            dpane.XAxis.Title.IsVisible      = false;
            dpane.YAxis.Title.IsVisible      = false;
            dpane.XAxis.MajorGrid.IsVisible  = true;
            dpane.YAxis.MajorGrid.IsVisible  = true;
            dpane.YAxis.MajorGrid.IsZeroLine = false;
            dpane.CurveList.Clear();
            dpane.GraphObjList.Clear();
            dlist.Clockwise = true;
            for (int i = 0; i < 16; i++)
            {
                double r = stat_directions.Values[i] * 100;
                dlist.Add(r, 1);
                string  txt = ((WindDirections16)stat_directions.Keys[i]).Description();
                double  x   = r * Math.Sin(((i) * 22.5d) * Math.PI / 180d);
                double  y   = r * Math.Cos(((i) * 22.5d) * Math.PI / 180d);
                TextObj t   = new TextObj(txt, x, y);
                t.FontSpec.Size             = 20;
                t.FontSpec.IsDropShadow     = false;
                t.FontSpec.Border.IsVisible = false;
                dpane.GraphObjList.Add(t);
            }
            _ = dpane.AddCurve("t(DD)", dlist, Color.Blue);
            zedGraphControlDirection.AxisChange();
            zedGraphControlDirection.Invalidate();
        }
コード例 #2
0
ファイル: MainForm.cs プロジェクト: klavirshik/termometr
        private void DrawGraph()
        {
            GraphPane pane = zedGraph.GraphPane;

            pane.CurveList.Clear();

            pane.XAxis.MajorGrid.IsVisible = true;
            pane.YAxis.MajorGrid.IsVisible = true;

            pane.YAxis.MajorGrid.IsZeroLine = false;

            // Создаем список точек
            RadarPointList points = new RadarPointList();


            // Т.к. в списке будет 4 точки, то и окружность будет разбиваться на 4 части
            // Обход точек будет осуществляться против часовой стрелки
            points.Clockwise = false;

            // Первая точка - сверху над началом координат. Расстояние до центра = 1
            points.Add(1, 1);

            // Вторая точка - слева от начала координат.  Расстояние до центра = 2
            points.Add(2, 1);

            // Третья точка - снизу под началом координат.  Расстояние до центра = 3
            points.Add(3, 1);

            // Четвертая точка - справа от начала координат.  Расстояние до центра = 4
            points.Add(4, 1);


            // Добавляем кривую по этим четырем точкам
            LineItem myCurve = pane.AddCurve("", points, Color.Black, SymbolType.None);


            // Для наглядности нарисуем расстояния от начала координат до каждой из точек
            ArrowObj arrow1 = new ArrowObj(0, 0, 0, 1);

            pane.GraphObjList.Add(arrow1);

            ArrowObj arrow2 = new ArrowObj(0, 0, -2, 0);

            pane.GraphObjList.Add(arrow2);

            ArrowObj arrow3 = new ArrowObj(0, 0, 0, -3);

            pane.GraphObjList.Add(arrow3);

            ArrowObj arrow4 = new ArrowObj(0, 0, 4, 0);

            pane.GraphObjList.Add(arrow4);

            // Отметим начало координат черным квадратиком
            BoxObj box = new BoxObj(-0.05, 0.05, 0.1, 0.1, Color.Black, Color.Black);

            pane.GraphObjList.Add(box);

            zedGraph.AxisChange();

            zedGraph.Invalidate();
        }