public void firstPart(string prefix) { list1.Clear(); for (int i = 1; i <= Convert.ToInt32(textBox14.Text); i++) { string controlNameC = prefix + "c" + i; var controls = this.Controls.Find(controlNameC, true); var control = controls.FirstOrDefault(); double.TryParse(control.Text.Replace('.', ','), out double c); string controlNameD1 = prefix + "d" + i + "1"; string controlNameD2 = prefix + "d" + i + "2"; var controlsD1 = this.Controls.Find(controlNameD1, true); var controlD1 = controlsD1.FirstOrDefault(); var controlsD2 = this.Controls.Find(controlNameD2, true); var controlD2 = controlsD2.FirstOrDefault(); double.TryParse(controlD1.Text.Replace('.', ','), out double d1); double.TryParse(controlD2.Text.Replace('.', ','), out double d2); double dd = (d1 + d2) / 2; if (dd != 0 && c != 0) { list1.Add(c, dd); } } IList <double> XandY = PP.PPToAxe(list1); Eapp epp = new Eapp(); double[] X = new double[XandY.Count / 2]; double[] Y = new double[XandY.Count / 2]; for (int i = 0; i < XandY.Count / 2; i++) { X[i] = XandY[i]; Y[i] = XandY[i + XandY.Count / 2]; } pa = 0; pb = 0; pc = 0; ea = 0; eb = 0; lk = 0; lb = 0; if (radioButton1.Checked == true) { epp.approxl(XandY.Count / 2, X, Y, ref lk, ref lb); checkbox = 0; } else if (radioButton2.Checked == true) { epp.approx2(XandY.Count / 2, X, Y, ref pa, ref pb, ref pc); checkbox = 1; } else if (radioButton3.Checked == true) { epp.approx(XandY.Count / 2, X, Y, ref ea, ref eb); checkbox = 2; } }
public Form2(double pa, double pb, double pc, double ea, double eb, double lk, double lb, PointPairList testData, PointPairList res, int num) { if (res == null && num != 0) { this.Close(); return; } testData.Sort(); InitializeComponent(); GraphPane pane = zedGraphControl1.GraphPane; PointPairList pl = new PointPairList(); PointPairList pp = new PointPairList(); PointPairList pe = new PointPairList(); int limitX = (int)testData[testData.Count - 1].X + 1; pl = Eapp.addPointsL(limitX, lk, lb); pp = Eapp.addPointsP(limitX, pa, pb, pc); pe = Eapp.addPointsE(limitX, ea, eb); pane.XAxis.Title.Text = "C"; //подпись оси X pane.YAxis.Title.Text = "D"; //подпись оси Y if (num != 0) { pane.Title.Text = "Номер пробы: " + num; this.Text = "Номер пробы: " + num; } else { pane.Title.Text = "le graffique"; } // Очистим список кривых pane.CurveList.Clear(); // Обводка ромбиков будут рисоваться голубым цветом (Color.Blue), // Опорные точки - ромбики (SymbolType.Diamond) LineItem myCurve; if (Form1.checkbox == 0) { myCurve = pane.AddCurve("Линейная аппроксимация", pl, Color.Black, SymbolType.None); } else if (Form1.checkbox == 1) { myCurve = pane.AddCurve("Квадратичная ппроксимация", pp, Color.Black, SymbolType.None); } else if (Form1.checkbox == 2) { pane.AddCurve("Экспоненциальная аппроксимация", pe, Color.Black, SymbolType.None); } LineItem myCurve1 = pane.AddCurve("Эксперементальные данные", testData, Color.BlueViolet, SymbolType.Circle); LineItem myCurve2 = pane.AddCurve("Проекция", res, Color.DarkGray, SymbolType.None); zedGraphControl1.AxisChange(); zedGraphControl1.Invalidate(); this.Show(); }