예제 #1
0
        void draw_graph()
        {
            _graphline.Clear();
            nMaximum = 0;
            Graph.GraphPane.YAxis.MajorGrid.IsVisible = true;
            Graph.GraphPane.XAxis.MajorGrid.IsVisible = true;
            Graph.GraphPane.XAxis.Scale.Min           = A;
            Graph.GraphPane.XAxis.Scale.Max           = B;
            Graph.GraphPane.YAxis.Scale.Min           = C;
            Graph.GraphPane.YAxis.Scale.Max           = D;
            for (double par = A; par <= B; par += sh)
            {
                _graphline.Add(par, Runge(par));
            }

            nMax.Text = Convert.ToString(nMaximum);

            LineItem mygraphline = Graph.GraphPane.AddCurve("", _graphline, Color.Red, SymbolType.None);

            mygraphline.Line.Width = 2;

            mygraphline.Line.IsSmooth = true;
            Graph.AxisChange();
            Graph.Invalidate();
        }
예제 #2
0
        PointPairList list6 = new PointPairList(); //Rnx

        public Form1()
        {
            InitializeComponent();

            radioButton1.Checked = true;

            list.Add(0, 0);                                                                           // добавляем точку (0,0) для отображения осей в центре в этой точе

            LineItem myCurve = this.Graph.GraphPane.AddCurve("", list, Color.Black, SymbolType.None); // Создадим кривую

            this.Graph.GraphPane.Title.Text = "График";                                               //Заголовок графика

            this.Graph.GraphPane.XAxis.Cross = 0.0;                                                   // Ось X будет пересекаться с осью Y на уровне Y = 0

            this.Graph.GraphPane.YAxis.Cross = 0.0;                                                   // Ось Y будет пересекаться с осью X на уровне X = 0


            this.Graph.GraphPane.XAxis.Scale.IsSkipFirstLabel = true; // Отключим отображение первых и последних меток по осям
            this.Graph.GraphPane.XAxis.Scale.IsSkipLastLabel  = true;

            this.Graph.GraphPane.XAxis.Scale.IsSkipCrossLabel = true; // Отключим отображение меток в точке пересечения с другой осью

            this.Graph.GraphPane.YAxis.Scale.IsSkipFirstLabel = true; // Отключим отображение первых и последних меток по осям

            this.Graph.GraphPane.YAxis.Scale.IsSkipLastLabel  = true; // Отключим отображение меток в точке пересечения с другой осью
            this.Graph.GraphPane.YAxis.Scale.IsSkipCrossLabel = true;

            this.Graph.GraphPane.XAxis.Title.IsVisible = false; // Спрячем заголовки осей
            this.Graph.GraphPane.YAxis.Title.IsVisible = false;

            Graph.Invalidate(); // Обновляем график

            Graph.AxisChange(); // Вызываем метод AxisChange (), чтобы обновить данные об осях.
        }
예제 #3
0
        private void Clear_Click(object sender, EventArgs e)
        {
            Graph.GraphPane.CurveList.Clear();
            nMaximum  = 0;
            nMax.Text = Convert.ToString(nMaximum);

            Graph.AxisChange();
            Graph.Invalidate();
        }
예제 #4
0
        void method_of_EulerX()//рисует интегральную кривую и выводит n_max
        {
            PointPairList list1 = new PointPairList();

            double x = x0, y = y0, x1;

            list1.Add(x0, y0);

            for (int par = 0; par < n; par++)
            {
                x1 = x;
                //x = x + Tau * (Beta * y + Epsilon * x + Psi);
                //y = y + Tau * (Alpha * x1 + Delta * y + Fi *Math.Exp(y));
                x = Tau * (Math.Exp(Epsilon * x + Lambda * y)) + Alpha * Math.Cos(Beta * x) + Fi;
                y = Tau * Math.Sqrt(Gamma + V * x) + Epsilon * Math.Exp(y) + Fi;
                list1.Add(x, y);
            }

            PointPairList list2 = new PointPairList();

            list2.Add(x0, y0);

            x = x0; y = y0;

            for (int par = 0; par < n; par++)
            {
                x1 = x;
                //x = x - Tau * (Beta * y + Epsilon * x + Psi);
                //y = y - Tau * (Alpha * x1 + Delta * y + Fi * Math.Exp(y));
                x = (Math.Exp(Epsilon * x + Lambda * y)) + Alpha * Math.Cos(Beta * x) + Fi;
                y = Math.Sqrt(Gamma + V * x) + Epsilon * Math.Exp(y) + Fi;
                list2.Add(x, y);
            }

            Random rnd = new Random();

            Color curveColor = _colors[rnd.Next(_colors.Length)];

            Graph.GraphPane.AddCurve("", list1, curveColor, SymbolType.None); // Создадим кривую
            Graph.GraphPane.AddCurve("", list2, curveColor, SymbolType.None); // Создадим кривую

            Graph.AxisChange();

            Graph.Invalidate(); // Обновляем график
        }
예제 #5
0
        PointPairList list6 = new PointPairList(); //Rnx

        public Form1()
        {
            InitializeComponent();

            radioButton1.Checked = true;

            list.Add(0, 0);                                                                           // добавляем точку (0,0) для отображения осей в центре в этой точе

            LineItem myCurve = this.Graph.GraphPane.AddCurve("", list, Color.Black, SymbolType.None); // Создадим кривую

            this.Graph.GraphPane.Title.Text = "f(x) = α * cos[ε*x] * sin[tg[β/x-γ]]";                 //Заголовок графика


            this.Graph.GraphPane.XAxis.Cross = 0.0; // Ось X будет пересекаться с осью Y в точке (0,0)
            this.Graph.GraphPane.YAxis.Cross = 0.0;

            this.Graph.GraphPane.XAxis.Scale.IsSkipFirstLabel = true; // Отключим отображение первых и последних меток по осям
            this.Graph.GraphPane.XAxis.Scale.IsSkipLastLabel  = true;

            this.Graph.GraphPane.XAxis.Scale.IsSkipCrossLabel = true; // Отключим отображение меток в точке пересечения с другой осью

            this.Graph.GraphPane.YAxis.Scale.IsSkipFirstLabel = true; // Отключим отображение первых и последних меток по осям

            this.Graph.GraphPane.YAxis.Scale.IsSkipLastLabel  = true; // Отключим отображение меток в точке пересечения с другой осью
            this.Graph.GraphPane.YAxis.Scale.IsSkipCrossLabel = true;

            this.Graph.GraphPane.XAxis.Title.IsVisible = false; // Спрячем заголовки осей
            this.Graph.GraphPane.YAxis.Title.IsVisible = false;

            this.Graph.GraphPane.XAxis.Scale.Min = A; // Устанавливаем интересующий нас интервал по оси X (интерал отображения графика)
            this.Graph.GraphPane.XAxis.Scale.Max = B;

            this.Graph.GraphPane.YAxis.Scale.Min = C; // Устанавливаем интересующий нас интервал по оси Y (интерал отображения графика)
            this.Graph.GraphPane.YAxis.Scale.Max = D;

            Graph.Invalidate(); // Обновляем график
            Graph.AxisChange(); // Обновляем данные об осях.
        }
예제 #6
0
        public Form1()
        {
            InitializeComponent();

            radioButton1.Checked     = true;
            radioButton_Alph.Checked = true;

            _axis.Add(0, 0);

            Graph.GraphPane.AddCurve("", _axis, Color.Red, SymbolType.None);

            Graph.GraphPane.Title.Text = "f(x) = Alpha * sin(Beta/(x-Gamma)^2) + Delta * cos(Epsilon/(x-Mu)^2)";

            Graph.GraphPane.XAxis.Cross = 0.0;
            Graph.GraphPane.YAxis.Cross = 0.0;

            Graph.GraphPane.YAxis.MajorGrid.IsVisible = true;

            Graph.GraphPane.XAxis.Scale.IsSkipFirstLabel = true;
            Graph.GraphPane.XAxis.Scale.IsSkipLastLabel  = true;
            Graph.GraphPane.YAxis.Scale.IsSkipFirstLabel = true;
            Graph.GraphPane.YAxis.Scale.IsSkipLastLabel  = true;
            Graph.GraphPane.XAxis.Scale.IsSkipCrossLabel = true;
            Graph.GraphPane.YAxis.Scale.IsSkipCrossLabel = true;

            Graph.GraphPane.XAxis.Title.IsVisible = false;
            Graph.GraphPane.YAxis.Title.IsVisible = false;

            Graph.GraphPane.XAxis.Scale.Min = A;
            Graph.GraphPane.XAxis.Scale.Max = B;
            Graph.GraphPane.YAxis.Scale.Min = C;
            Graph.GraphPane.YAxis.Scale.Max = D;

            Graph.Invalidate();
            Graph.AxisChange();
        }
예제 #7
0
        public Form1()
        {
            InitializeComponent();

            radioButton1.Checked     = true;
            radioButton_Alph.Checked = true;

            axis.Add(0, 0);                                                                           // добавляем точку (0,0) для отображения осей в центре в этой точе

            LineItem myAxis = this.Graph.GraphPane.AddCurve("", axis, Color.Yellow, SymbolType.None); // Создадим кривую

            this.Graph.GraphPane.Title.Text = "f(x) = ε * sin[(β*x)/(α^2-x^2)] * cos[γ*x]";           //Заголовок графика

            this.Graph.GraphPane.XAxis.Cross = 0.0;                                                   // Ось X будет пересекаться с осью Y на уровне Y = 0
            this.Graph.GraphPane.YAxis.Cross = 0.0;                                                   // Ось Y будет пересекаться с осью X на уровне X = 0

            //Сетка
            this.Graph.GraphPane.YAxis.MajorGrid.IsVisible = true;
            this.Graph.GraphPane.YAxis.MajorGrid.Color     = Color.GreenYellow;
            this.Graph.GraphPane.XAxis.MajorGrid.IsVisible = true;
            this.Graph.GraphPane.XAxis.MajorGrid.Color     = Color.GreenYellow;
            //this.Graph.GraphPane.YAxis.MinorGrid.IsVisible = true;
            //this.Graph.GraphPane.YAxis.MinorGrid.Color = Color.YellowGreen;
            //this.Graph.GraphPane.XAxis.MinorGrid.IsVisible = true;
            //this.Graph.GraphPane.XAxis.MinorGrid.Color = Color.YellowGreen;

            this.Graph.GraphPane.XAxis.Scale.IsSkipFirstLabel = true; // Отключим отображение первых и последних меток по осям
            this.Graph.GraphPane.XAxis.Scale.IsSkipLastLabel  = true;
            this.Graph.GraphPane.YAxis.Scale.IsSkipFirstLabel = true;
            this.Graph.GraphPane.YAxis.Scale.IsSkipLastLabel  = true;
            this.Graph.GraphPane.XAxis.Scale.IsSkipCrossLabel = true; // Отключим отображение меток в точке пересечения с другой осью
            this.Graph.GraphPane.YAxis.Scale.IsSkipCrossLabel = true;

            this.Graph.GraphPane.XAxis.Title.IsVisible = false; // Спрячем заголовки осей
            this.Graph.GraphPane.YAxis.Title.IsVisible = false;

            // Устанавливаем интересующий нас интервал отображения по осиям
            this.Graph.GraphPane.XAxis.Scale.Min = A;
            this.Graph.GraphPane.XAxis.Scale.Max = B;
            this.Graph.GraphPane.YAxis.Scale.Min = C;
            this.Graph.GraphPane.YAxis.Scale.Max = D;

            //закраска область графика
            this.Graph.GraphPane.Fill.Type    = FillType.Solid;
            this.Graph.GraphPane.Fill.Color   = Color.MidnightBlue;
            this.Graph.GraphPane.Border.Color = Color.MidnightBlue;
            //цвет рамки вокруг графика
            this.Graph.GraphPane.Chart.Border.Color       = Color.Yellow;
            this.Graph.GraphPane.Title.FontSpec.FontColor = Color.YellowGreen;
            // Закраска области построения
            this.Graph.GraphPane.Chart.Fill.Type  = FillType.Solid;
            this.Graph.GraphPane.Chart.Fill.Color = Color.Black;
            //установка цвета осей
            this.Graph.GraphPane.XAxis.Color = Color.Yellow;
            this.Graph.GraphPane.YAxis.Color = Color.Yellow;
            //установка цвета шрифтов
            this.Graph.GraphPane.XAxis.Scale.FontSpec.FontColor = Color.Yellow;
            this.Graph.GraphPane.YAxis.Scale.FontSpec.FontColor = Color.Yellow;

            Graph.Invalidate(); // Обновляем график
            Graph.AxisChange(); // Вызываем метод AxisChange (), чтобы обновить данные об осях.
        }
예제 #8
0
        private void Build_up_Click(object sender, EventArgs e)
        {
            Graph.GraphPane.CurveList.Clear();

            if (radioButton1.Checked)
            {
                Delta = 1.0;
            }
            if (radioButton2.Checked)
            {
                Delta = 0.1;
            }
            if (radioButton3.Checked)
            {
                Delta = 0.01;
            }
            if (radioButton4.Checked)
            {
                Delta = 0.001;
            }

            A = (double)Par_A.Value;
            B = (double)Par_B.Value;
            C = (double)Par_C.Value;
            D = (double)Par_D.Value;
            a = (double)numeric_a.Value;
            b = (double)numeric_b.Value;
            n = (int)numeric_points.Value;

            if (A >= B)
            {
                double temp = A;
                A           = B;
                B           = temp;
                Par_A.Value = (decimal)A;
                Par_B.Value = (decimal)B;
            }
            if (C >= D)
            {
                double temp = C;
                C           = D;
                D           = temp;
                Par_C.Value = (decimal)C;
                Par_D.Value = (decimal)D;
            }
            if (a >= b)
            {
                double temp = a;
                a = b;
                numeric_a.Value = (decimal)a;
                b = temp;
                numeric_b.Value = (decimal)b;
            }

            sh = (Math.Abs(A) + Math.Abs(B)) / 600;

            Alpha   = (double)numericAlpha.Value;
            Beta    = (double)numericBeta.Value;
            Gamma   = (double)numericGamma.Value;
            Epsilon = (double)numericEpsilon.Value;
            Del     = (double)numericDel.Value;
            Mu      = (double)numericMu.Value;

            Graph.GraphPane.XAxis.Scale.Min = A;
            Graph.GraphPane.XAxis.Scale.Max = B;
            Graph.GraphPane.YAxis.Scale.Min = C;
            Graph.GraphPane.YAxis.Scale.Max = D;

            Graph.AxisChange();
            Graph.Invalidate();

            draw_graph();
        }