예제 #1
0
        Point3[,] pts = new Point3[20, 20]; //задание матрицы точек с тремя координатами для построения графика

        #endregion Fields

        #region Constructors

        //конструктор формы
        public FunctionGraph(Functions.FunctionVyb Fun, double minX, double maxX, double minY, double maxY)
        {
            InitializeComponent();
            FunctionGraphik.C3DrawChart.ChartType = DrawChart.ChartTypeEnum.SurfaceFillContour; //определяем вид графика - контурный и объемный
            Azimuth.Text = PovorotAzimuth.Value.ToString(); //для поворота по горизонтали выводим в соответсвующую метку
            Elevation.Text = PovorotElevation.Value.ToString(); //для поворота по вертикали выводим в соответсвующую метку
            this.Fun = Fun; //присваиваем функцию переданную в конструктор полю
            if (minX == maxX) //присваиваем границы переданные - полям, если границы одинаковые - расширяем, чтобы график не выродился в точку
            {
                this.minX = minX-1;
                this.maxX = maxX+1;
            }
            else
            {
                this.minX = minX;
                this.maxX = maxX;
            }
            if (minY == maxY)
            {
                this.minY = minY-1;
                this.maxY = maxY+1;
            }
            else
            {
                this.minY = minY;
                this.maxY = maxY;
            }
            AddData(); //вызываем метод для построения
        }
예제 #2
0
 //выбор функции
 private void Function_Click(object sender, EventArgs e)
 {
     clickitem++; //наращиваем количество нажатий
     switch (clickitem)
     {
         case 2: Function.Image = Properties.Resources.Function2;
             Fun = Functions.Function2; //переключаем картинку и функции
             break;
         case 3: Function.Image = Properties.Resources.Function3;
             Fun = Functions.Function3; //переключаем картинку и функции
             break;
         case 4: Function.Image = Properties.Resources.Function4;
             Fun = Functions.Function4; //переключаем картинку и функции
             break;
         case 5: Function.Image = Properties.Resources.Function5;
             Fun = Functions.Function5; //переключаем картинку и функции
             break;
         case 6: Function.Image = Properties.Resources.Function6;
             Fun = Functions.Function6; //переключаем картинку и функции
             break;
         case 7: Function.Image = Properties.Resources.Function7;
             Fun = Functions.Function7; //переключаем картинку и функции
             break;
         case 8: Function.Image = Properties.Resources.Function8;
             Fun = Functions.Function8; //переключаем картинку и функции
             break;
         default:
             clickitem =1; //количество кликов - ставим начальное значение
             Function.Image = Properties.Resources.Function1;
             Fun = Functions.Function1; //переключаем картинку и функции
             break;
     }
 }
예제 #3
0
        double[,] newpop; //популяция

        #endregion Fields

        #region Constructors

        //конструктор формы
        public Graphiks(int KolIt, double MiX, double MaX, double MiY, double MaY, bool MaxF, bool MinF, Functions.FunctionVyb x)
        {
            Kol = KolIt;//присваиваем переданные значения из другой формы
            MaxX = MaX;
            MinX = MiX;
            MaxY = MaY;
            MinY = MiY;
            Max = MaxF;
            Min = MinF;
            Fun = x;
            InitializeComponent();
            Timer.Interval = 1000; //интервал для таймера
            lastiteration.Enabled = false; //начальные параметры доступа некоторых объектов
            Stop_button.Enabled = false;
            newpop = OptimizationAlgorithms.NewPopulation(MinX, MaxX, MinY, MaxY); //формируем новую популяцию
            lastmassiv = new double[newpop.GetLength(0), 2]; //инициализируем массив для предыдущей итерации
            Postroenye(); //строим график без точек
            zedGraph.IsShowPointValues = true;// включаем показ всплывающих подсказок при наведении курсора на график
            // для изменения формата представления координат обрабатываем событие для графика
            zedGraph.PointValueEvent += new ZedGraphControl.PointValueHandler(zedGraph_PointValueEvent);
            GraphSupport.SetToolTip(zedGraph, "Красным цветом обозначается лучший агент, желтым - худший агент, зеленым - остальные агенты"); //подсказка для графика
        }
예제 #4
0
        double[,] newpop; //переменные для возможности использовать вне конструктора

        #endregion Fields

        #region Constructors

        public PopulationShow(int Kol, double[,] newpop, Functions.FunctionVyb Fun)
        {
            //конструктор формы
            InitializeComponent();
            this.newpop = newpop;
            this.Fun = Fun; //присваивание внешним переменным
            Iteration.Text = Kol.ToString(); //задание количества итераций
            Population.RowCount = newpop.GetLength(0);
            Population.ColumnCount = 3;
            Population.Columns[0].HeaderText = "Координата Х"; //именуем столбцы
            Population.Columns[1].HeaderText = "Координата Y";
            Population.Columns[2].HeaderText = "Значение функции";
            for (int i = 0; i < newpop.GetLength(0); i++)
            { //заполняем таблицу
                switch ((int)KolZnakov.Value)
                { //в зависимости от выбранного количества знаков, заполняем таблицу
                    case 0:
                        Population[0, i].Value = string.Format("{0:f0}",newpop[i, 0]);
                        Population[1, i].Value = string.Format("{0:f0}", newpop[i, 1]);
                        Population[2, i].Value = string.Format("{0:f0}",Fun(newpop[i, 0], newpop[i, 1]));
                        Population.Rows[i].HeaderCell.Value = String.Format("{0}", i + 1);
                        break;
                    case 1:
                        Population[0, i].Value = string.Format("{0:f1}",newpop[i, 0]);
                        Population[1, i].Value = string.Format("{0:f1}", newpop[i, 1]);
                        Population[2, i].Value = string.Format("{0:f1}", Fun(newpop[i, 0], newpop[i, 1]));
                        Population.Rows[i].HeaderCell.Value = String.Format("{0}", i + 1);
                        break;
                    case 2:
                        Population[0, i].Value = string.Format("{0:f2}",newpop[i, 0]);
                        Population[1, i].Value = string.Format("{0:f2}", newpop[i, 1]);
                        Population[2, i].Value = string.Format("{0:f2}", Fun(newpop[i, 0], newpop[i, 1]));
                        Population.Rows[i].HeaderCell.Value = String.Format("{0}", i + 1);
                        break;
                    case 3:
                        Population[0, i].Value = string.Format("{0:f3}",newpop[i, 0]);
                        Population[1, i].Value = string.Format("{0:f3}", newpop[i, 1]);
                        Population[2, i].Value = string.Format("{0:f3}", Fun(newpop[i, 0], newpop[i, 1]));
                        Population.Rows[i].HeaderCell.Value = String.Format("{0}", i + 1);
                        break;
                    case 4:
                        Population[0, i].Value = string.Format("{0:f4}",newpop[i, 0]);
                        Population[1, i].Value = string.Format("{0:f4}", newpop[i, 1]);
                        Population[2, i].Value = string.Format("{0:f4}", Fun(newpop[i, 0], newpop[i, 1]));
                        Population.Rows[i].HeaderCell.Value = String.Format("{0}", i + 1);
                        break;
                    case 5:
                        Population[0, i].Value = string.Format("{0:f5}",newpop[i, 0]);
                        Population[1, i].Value = string.Format("{0:f5}", newpop[i, 1]);
                        Population[2, i].Value = string.Format("{0:f5}",Fun(newpop[i, 0], newpop[i, 1]));
                        Population.Rows[i].HeaderCell.Value = String.Format("{0}", i + 1);
                        break;
                    case 6:
                        Population[0, i].Value = string.Format("{0:f6}",newpop[i, 0]);
                        Population[1, i].Value = string.Format("{0:f6}", newpop[i, 1]);
                        Population[2, i].Value = string.Format("{0:f6}",Fun(newpop[i, 0], newpop[i, 1]));
                        Population.Rows[i].HeaderCell.Value = String.Format("{0}", i + 1);
                        break;
                    case 7:
                        Population[0, i].Value = string.Format("{0:f7}",newpop[i, 0]);
                        Population[1, i].Value = string.Format("{0:f7}", newpop[i, 1]);
                        Population[2, i].Value = string.Format("{0:f7}",Fun(newpop[i, 0], newpop[i, 1]));
                        Population.Rows[i].HeaderCell.Value = String.Format("{0}", i + 1);
                        break;
                    case 8:
                        Population[0, i].Value = string.Format("{0:f8}",newpop[i, 0]);
                        Population[1, i].Value = string.Format("{0:f8}", newpop[i, 1]);
                        Population[2, i].Value = string.Format("{0:f8}", Fun(newpop[i, 0], newpop[i, 1]));
                        Population.Rows[i].HeaderCell.Value = String.Format("{0}", i + 1);
                        break;
                    case 9:
                        Population[0, i].Value = string.Format("{0:f9}",newpop[i, 0]);
                        Population[1, i].Value = string.Format("{0:f9}", newpop[i, 1]);
                        Population[2, i].Value = string.Format("{0:f9}", Fun(newpop[i, 0], newpop[i, 1]));
                        Population.Rows[i].HeaderCell.Value = String.Format("{0}", i + 1);
                        break;
                    case 10:
                        Population[0, i].Value = string.Format("{0:f10}",newpop[i, 0]);
                        Population[1, i].Value = string.Format("{0:f10}", newpop[i, 1]);
                        Population[2, i].Value = string.Format("{0:f10}", Fun(newpop[i, 0], newpop[i, 1]));
                        Population.Rows[i].HeaderCell.Value = String.Format("{0}", i + 1);
                        break;
                    case 11:
                        Population[0, i].Value = string.Format("{0:f11}",newpop[i, 0]);
                        Population[1, i].Value = string.Format("{0:f11}", newpop[i, 1]);
                        Population[2, i].Value = string.Format("{0:f11}", Fun(newpop[i, 0], newpop[i, 1]));
                        Population.Rows[i].HeaderCell.Value = String.Format("{0}", i + 1);
                        break;
                    case 12:
                        Population[0, i].Value = string.Format("{0:f12}",newpop[i, 0]);
                        Population[1, i].Value = string.Format("{0:f12}", newpop[i, 1]);
                        Population[2, i].Value = string.Format("{0:f12}", Fun(newpop[i, 0], newpop[i, 1]));
                        Population.Rows[i].HeaderCell.Value = String.Format("{0}", i + 1);
                        break;
                    case 13:
                        Population[0, i].Value = string.Format("{0:f13}",newpop[i, 0]);
                        Population[1, i].Value = string.Format("{0:f13}", newpop[i, 1]);
                        Population[2, i].Value = string.Format("{0:f13}", Fun(newpop[i, 0], newpop[i, 1]));
                        Population.Rows[i].HeaderCell.Value = String.Format("{0}", i + 1);
                        break;
                    case 14:
                        Population[0, i].Value = string.Format("{0:f14}",newpop[i, 0]);
                        Population[1, i].Value = string.Format("{0:f14}", newpop[i, 1]);
                        Population[2, i].Value = string.Format("{0:f14}", Fun(newpop[i, 0], newpop[i, 1]));
                        Population.Rows[i].HeaderCell.Value = String.Format("{0}", i + 1);
                        break;
                    case 15:
                        Population[0, i].Value = string.Format("{0:f15}",newpop[i, 0]);
                        Population[1, i].Value = string.Format("{0:f15}", newpop[i, 1]);
                        Population[2, i].Value = string.Format("{0:f15}", Fun(newpop[i, 0], newpop[i, 1]));
                        Population.Rows[i].HeaderCell.Value = String.Format("{0}", i + 1);
                        break;
                }
            }
        }