private void SetChartArea(Optimize.BasicData.VarBounds bounds) { chart.Series.Clear(); chart.Series.Add("Null"); //chart.Series["Null"].Points.AddXY(0, 0); chart.ChartAreas[0].AxisX.Maximum = bounds.X1Upper; chart.ChartAreas[0].AxisX.Minimum = bounds.X1Lower; chart.ChartAreas[0].AxisY.Maximum = bounds.X2Upper; chart.ChartAreas[0].AxisY.Minimum = bounds.X2Lower; chart.ChartAreas[0].AxisX.Interval = MathExpr.Round(bounds.X1Interval / 20); chart.ChartAreas[0].AxisY.Interval = MathExpr.Round(bounds.X2Interval / 20); }
Optimize.BasicData PrepareValues() { Optimize.BasicData data = null; try { var func = new MathExpr(funcTextBox.Text); logstr += $"y={funcTextBox.Text}\u2192{criteriaComboBox.Text}"; var restr = new MathExpr[limitsGridView.Rows.Count]; for (int i = 0; i < limitsGridView.Rows.Count; i++) { string expr = limitsGridView[0, i].Value.ToString() + limitsGridView[1, i].Value.ToString() + limitsGridView[2, i].Value.ToString(); logstr += ", " + expr; restr[i] = new MathExpr(expr); } double x1min, x1max, x2min, x2max; x1min = Double.Parse(x1ltextBox.Text); x1max = Double.Parse(x1utextBox.Text); x2min = Double.Parse(x2ltextBox.Text); x2max = Double.Parse(x2utextBox.Text); Double.Parse(par1TextBox.Text); Double.Parse(textBox4.Text); Double.Parse(textBox3.Text); Double.Parse(textBox2.Text); uint.Parse(par2TextBox.Text); double par_eps = Double.Parse(textBox1.Text); var bounds = new Optimize.BasicData.VarBounds(x1min, x1max, x2min, x2max); logstr += " " + bounds; data = new Optimize.BasicData(func, crit, restr, bounds); } catch { MessageBox.Show("Не удалось обработать введённые данные. Процесс отменён."); logstr += " - Неудача!"; } return(data); }