public bool MouseDownEvent(MouseEventArgs e)
        {
            if (!DrawtingMode)
            {
                return(default(bool));
            }

            _isPaintingBegun = true;
            _zedGraphResult.IsEnableHZoom = false;
            _zedGraphResult.IsEnableVZoom = false;
            _pointPairList.Clear();
            _richTextBoxIncoming.Clear();
            _zedGraphResult.GraphPane.ReverseTransform(e.Location, out _lastX, out _lastY);
            _lastX = Math.Round(_lastX, 1);
            _lastY = Math.Round(_lastY, 1);
            _pointPairList.Add(_lastX, _lastY);
            try
            {
                _zedGraphResult.GraphPane.CurveList["Произвольная"].Color = Color.HotPink;
            }
            catch
            {
                ZedGraphHlp.DrawGraph(_zedGraphResult, "Произвольная", _pointPairList, Color.HotPink, IsDeptActive);
            }
            _zedGraphResult.GraphPane.CurveList["Произвольная"].Clear();
            return(default(bool));
        }
        private void GetCurveToManeOld(int y)
        {
            MainForm.richTextBoxIncoming.Text = "";
            PointPairList list = new PointPairList();

            list.Clear();
            string enter = "\r\n";

            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                if (i == 0)
                {
                    MainForm.textBox2.Text = dataGridView1[0, i].Value.ToString();
                }

                if (i == dataGridView1.Rows.Count - 1)
                {
                    MainForm.textBox3.Text = dataGridView1[0, i].Value.ToString();
                    enter = "";
                }
                MainForm.IncomingParameters.Add(dataGridView1[0, i].Value + " " + dataGridView1[y, i].Value);
                MainForm.richTextBoxIncoming.Text += dataGridView1[0, i].Value + " " + dataGridView1[y, i].Value + enter;
                list.Add((dataGridView1[y, i].Value).ToDblSlow(), (dataGridView1[0, i].Value).ToDblSlow());
            }

            ZedGraphHlp.DrawGraph(MainForm.ZedGraphResult, "Из Las файла", list, Color.Blue, MainForm.checkBoxHaveDept.Checked);
        }
        public void richTextBoxIncoming_DoubleClick(object sender, EventArgs e)
        {
            ClearNullStr(richTextBoxIncoming);
            int fxIndex = richTextBoxIncoming.Lines[0].Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries).Length;
            var list    = new PointPairList();

            try
            {
                ZedGraphResult.GraphPane.CurveList["Исходная"].Color = Color.Green;
            }
            catch
            {
                ZedGraphHlp.DrawGraph(ZedGraphResult, "Исходная", list, Color.Red, checkBoxHaveDept.Checked);
            }
            ZedGraphResult.GraphPane.CurveList["Исходная"].Clear();

            foreach (string line in richTextBoxIncoming.Lines)
            {
                string[] parts = line.Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries);
                ZedGraphResult.GraphPane.CurveList["Исходная"].AddPoint(ConvertExt.ToDbl(parts[fxIndex - 1]), ConvertExt.ToDbl(parts[0]));
            }

            ZedGraphResult.AxisChange();
            ZedGraphResult.Invalidate();
        }
示例#4
0
        private void DrawToMain(RichTextBox rtb, string title)
        {
            int           Fx_index = rtb.Lines[0].Split(new char[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries).Length;
            PointPairList list     = new PointPairList();

            for (int i = 0; i < rtb.Lines.Length; i++)
            {
                string[] parts = rtb.Lines[i].Split(new char[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries);
                list.Add(parts[Fx_index - 1].ToDbl(), parts[0].ToDbl());
            }
            ZedGraphHlp.DrawGraph(MainForm.ZedGraphResult, title, list, ZedGraphHlp.RandomColor, MainForm.checkBoxHaveDept.Checked);
        }
示例#5
0
        private void button3_Click(object sender, EventArgs e)
        {
            richTextBoxIncoming.Text = "";
            PointPairList list   = new PointPairList();
            double        start  = textBox5.Text.ToDbl();
            double        finish = textBox3.Text.ToDbl();
            double        step   = textBox4.Text.ToDbl();

            double[,] temp2 = MainForm.Evaluator(textBoxIncFunc.Text, start, finish, step);
            for (int i = 0; i < temp2.GetLength(1); i++)
            {
                list.Add(temp2[1, i], temp2[0, i]);
                richTextBoxIncoming.Text += temp2[0, i] + "\t" + temp2[1, i] + "\r\n";
            }
            ZedGraphHlp.DrawGraph(MainForm.ZedGraphResult, "Функция для свертки", list, ZedGraphHlp.RandomColor, MainForm.checkBoxHaveDept.Checked);
        }
        private void GetCurveToMane()
        {
            //MainForm.checkBoxFormat.Checked = true;
            MainForm.richTextBoxIncoming.Text = "";
            PointPairList list = new PointPairList();

            list.Clear();
            string enter = "\r\n";

            label1.Visible       = true;
            progressBar1.Visible = true;
            progressBar1.Value   = 0;
            double progress = 0;
            double step     = 100.0 / (dataGridView2.Rows.Count - 1);

            for (int i = 0; i < dataGridView2.Rows.Count; i++)
            {
                progress += step;
                if (progress > 1)
                {
                    progress--;
                    progressBar1.Value++;
                }
                if (i == 0)
                {
                    MainForm.textBox2.Text = dataGridView1[0, i].Value.ToString();
                }

                if (i == dataGridView1.Rows.Count - 1)
                {
                    MainForm.textBox3.Text = dataGridView1[0, i].Value.ToString();
                    enter = "";
                }
                MainForm.IncomingParameters.Add(dataGridView2[0, i].Value + " " + dataGridView2[1, i].Value + " " + dataGridView2[2, i].Value);
                MainForm.richTextBoxIncoming.Text += dataGridView2[0, i].Value + " " + dataGridView2[1, i].Value + " " + dataGridView2[2, i].Value + enter;
                list.Add(dataGridView2[2, i].Value.ToDblSlow(), dataGridView2[0, i].Value.ToDblSlow());
            }

            ZedGraphHlp.DrawGraph(MainForm.ZedGraphResult, "Из Las файла", list, Color.Blue, MainForm.checkBoxHaveDept.Checked);
            label1.Visible       = false;
            progressBar1.Visible = false;
            Close();
        }
示例#7
0
        private void button6_Click(object sender, EventArgs e)
        {
            MainForm.checkBoxHaveDept.Checked    = true;
            MainForm.checkBoxConvolution.Checked = true;
            MainForm.textBoxPopulationSize.Text  = "15";
            MainForm.textBoxNMIteratoins.Text    = "3000";
            int           OperatorsLenght = richTextBoxOperator.Lines[0].Split(new char[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries).Length;
            PointPairList list            = new PointPairList();

            Reader(richTextBoxOperator, ListOperator);
            Reader(richTextBoxIncoming, ListIncoming);
            ListConvolution.Clear();
            MainForm.richTextBoxIncoming.Text = "";
            richTextBoxConvolution.Text       = "";
            for (int i = 0; i < OperatorsLenght - 1; i++)
            {
                double[] temp = new double[2];
                temp[0] = Math.Round(GetArgumentFromList(i, 0, ListIncoming), 4);
                temp[1] = 0;
                list.Add(temp[1], temp[0]);
                ListConvolution.Add(temp);
                MainForm.richTextBoxIncoming.Text += temp[0] + "   \t" + GetArgumentFromList(i, 1, ListIncoming) + "    \t" + temp[1] + "\r\n";
                richTextBoxConvolution.Text       += temp[0] + "   \t" + temp[1] + "\r\n";
            }
            for (int i = OperatorsLenght - 1; i < richTextBoxIncoming.Lines.Length; i++)
            {
                double[] tempConv = new double[2];
                tempConv[0] = Math.Round(GetArgumentFromList(i, 0, ListIncoming), 4);
                for (int m = 0; m < OperatorsLenght; m++)
                {
                    tempConv[1] += GetArgumentFromList(0, m, ListOperator) * GetArgumentFromList(i - m, 1, ListIncoming);
                }
                //for (int m = 1; m <= 2; m++)
                //{
                //    tempConv[1] -= 0.5 * GetArgumentFromList(i - m, 1, ListConvolution);
                //}
                list.Add(tempConv[1], tempConv[0]);
                ListConvolution.Add(tempConv);
                MainForm.richTextBoxIncoming.Text += tempConv[0] + "   \t" + GetArgumentFromList(i, 1, ListIncoming) + "    \t" + Math.Round(tempConv[1], 4) + "\r\n";
                richTextBoxConvolution.Text       += tempConv[0] + "   \t" + Math.Round(tempConv[1], 4) + "\r\n";
            }
            ZedGraphHlp.DrawGraph(MainForm.ZedGraphResult, "Цифровой фильтр", list, Color.Pink, MainForm.checkBoxHaveDept.Checked);
        }
        private void buttonGenerate_Click(object sender, EventArgs e)
        {
            richTextBoxIncoming.Text = "";
            var list = new PointPairList();

            double start  = ConvertExt.ToDbl(textBox2.Text);
            double finish = ConvertExt.ToDbl(textBox3.Text);
            double step   = ConvertExt.ToDbl(textBox4.Text);

            double[,] temp2 = Evaluator(TextBoxIdeal.Text, start, finish, step);
            for (var i = 0; i < temp2.GetLength(1); i++)
            {
                list.Add(temp2[1, i], temp2[0, i]);
                // ReSharper disable LocalizableElement
                richTextBoxIncoming.Text += temp2[0, i] + "\t" + temp2[1, i] + "\r\n";
                // ReSharper restore LocalizableElement
            }
            ZedGraphHlp.DrawGraph(ZedGraphResult, "Сгенерированная", list, Color.Green, false);
        }
示例#9
0
        private void button7_Click(object sender, EventArgs e)
        {
            richTextBoxIncoming.Text = "";
            PointPairList list   = new PointPairList();
            double        start  = textBox5.Text.ToDblSlow();
            double        finish = textBox3.Text.ToDblSlow();
            double        step   = textBox4.Text.ToDblSlow();

            double[,] temp2 = MainForm.Evaluator(textBoxIncFunc.Text, start, finish, step);
            for (double i = start; i > finish; i -= step)
            {
                double[] temp = new double[2];
                temp[0] = Math.Round(i, 4);
                temp[1] = rnd.Next(-Convert.ToInt16(textBox1.Text), Convert.ToInt16(textBox1.Text));
                list.Add(temp[1], temp[0]);
                richTextBoxIncoming.Text += temp[0] + "\t" + temp[1] + "\r\n";
            }

            ZedGraphHlp.DrawGraph(MainForm.ZedGraphResult, "Функция для свертки", list, Color.Green, MainForm.checkBoxHaveDept.Checked);
        }
示例#10
0
        private void button2_Click(object sender, EventArgs e)
        {
            Reader(richTextBoxIncoming, ListIncoming);
            Reader(richTextBoxConvolution, ListConvolution);
            int OperatorsCount = ListConvolution.Count - ListIncoming.Count + 1;

            OperatorsCount = 1;
            int  findedStartDeptInc  = -1;
            int  findedStartDeptConv = -1;
            bool finded = false;

            foreach (double[] getInc in ListIncoming)
            {
                if (!finded)
                {
                    foreach (double[] getConv in ListConvolution)
                    {
                        if (getInc[0] == getConv[0])
                        {
                            findedStartDeptConv = ListConvolution.IndexOf(getConv);
                            findedStartDeptInc  = ListIncoming.IndexOf(getInc);
                            finded = true;
                        }
                    }
                }
            }

            if (findedStartDeptConv == -1)
            {
                MessageBox.Show("Совпадений по глубине не найдено");
            }
            else
            {
                ListOperator.Clear();
                MainForm.zedGraphIterations.GraphPane.CurveList.Clear();
                MainForm.zedGraphIterations.GraphPane.GraphObjList.Clear();
                for (int i = 0; i < OperatorsCount; i++)
                {
                    GetOperators(findedStartDeptInc + i, findedStartDeptConv + i);
                }
                ListOperator.Reverse();
                richTextBoxOperator.Text = "";
                foreach (double[] getOp in ListOperator)
                {
                    PointPairList iterpoints = new PointPairList();
                    int           x          = 0;
                    foreach (double getOne in getOp)
                    {
                        double y = Math.Round(getOne, 4);
                        if (x != 0)
                        {
                            iterpoints.Add(x, y);
                        }
                        x++;
                        richTextBoxOperator.Text += y + " ";
                    }
                    ZedGraphHlp.DrawGraph(MainForm.zedGraphIterations, "", iterpoints, ZedGraphHlp.RandomColor, MainForm.checkBoxHaveDept.Checked);
                    richTextBoxOperator.Text += "\r\n";
                }
            }
        }
示例#11
0
        public void OnPopulationCreated()
        {
            if (Status.LastGraphPoints is null)
            {
                return;
            }

            var newPointsPairList = new PointPairList();

            //При безумном отклонении график с итерациями становится нечитаемым (слишком мелкий зум размывает кривые),
            //поэтому мы просто не выводим 'неудачные функции'.
            var notEvenClose = false;
            var i            = 0;

            foreach (List <double> points in SelectionManager.Arguments)
            {
                double newFy   = Status.LastGraphPoints.ElementAt(i);
                double startFy = points.Last();

                if (Math.Abs(newFy) > Math.Abs(startFy) * 50.0 && Math.Abs(startFy).IsLessThanEpsilon() == false)
                {
                    notEvenClose = true;
                    break;
                }

                newPointsPairList.Add(newFy, points.First());
                i++;
            }

            if (notEvenClose)
            {
                return;
            }

            ZedGraphHlp.DrawGraph(_formMainUi.zedGraphIterations, Status.CurrentIteration.ToString(),
                                  newPointsPairList, ZedGraphHlp.RandomColor, _formMainUi.checkBoxHaveDept.Checked);

            FrozenPointsPairList = newPointsPairList.Clone();

            if (_formMainUi.zedGraphIterations.GraphPane.CurveList.Count > 30)
            {
                _formMainUi.zedGraphIterations.GraphPane.Legend.IsVisible = false;
            }

            DoSafeAction(() =>
            {
                _formMainUi.FormDialog.LabelElaps.Text = Status.Timer.Elapsed.ToString();
                _formMainUi.progressBar1.Value         = Status.GetProgressPercent(_formMainUi.SelectionManager.SelectionConfig.MaxAlgorithmIterations);
                _formMainUi.FormDialog.Text            = @"Итерация № " + Status.CurrentIteration;
                _formMainUi.FormDialog.Refresh();
            });

            var errs = Status.Log.CompileErrors.Count;

            if (errs > 0)
            {
                DoSafeAction(() => _formMainUi.ошибкиToolStripMenuItem.Text = @"Ошибки " + errs);
            }

            DoSafeAction(_formMainUi.Refresh);
        }
示例#12
0
 public void OnSelectionFinished() =>
 ZedGraphHlp.DrawGraph(_formMainUi.ZedGraphResult, "Результат подбора", FrozenPointsPairList, Color.Blue, _formMainUi.checkBoxHaveDept.Checked);