Нахождение координаты пересечения графика с осью - C#
Формулировка задачи:
Возникла небольшая проблема. Используя библиотеку ZedGraph был построен график. График пересекает ось Х. Мне нужно узнать координату пересечения графика с осью Х для ее вывода. Как это можно сделать? Был бы благодарен за помощь.
Решение задачи: «Нахождение координаты пересечения графика с осью»
textual
Листинг программы
- private void button1_Click(object sender, EventArgs e)
- {
- x1 = Convert.ToDouble(textBox1.Text);
- x2 = Convert.ToDouble(textBox2.Text);
- x3 = Convert.ToDouble(textBox3.Text);
- x4 = Convert.ToDouble(textBox4.Text);
- x5 = Convert.ToDouble(textBox5.Text);
- x6 = Convert.ToDouble(textBox6.Text);
- x7 = Convert.ToDouble(textBox7.Text);
- x8 = Convert.ToDouble(textBox8.Text);
- x9 = Convert.ToDouble(textBox9.Text);
- x10 = Convert.ToDouble(textBox10.Text);
- x11 = Convert.ToDouble(textBox11.Text);
- textBox12.Text = "0";
- textBox13.Text = "0";
- textBox14.Text = "0,20";
- textBox15.Text = "10";
- textBox16.Text = "24";
- textBox17.Text = "35";
- textBox18.Text = "30";
- textBox19.Text = "0,60";
- textBox20.Text = "0,20";
- textBox21.Text = "0";
- textBox22.Text = "0";
- textBox36.Text = "0";
- z1 = Convert.ToDouble(textBox12.Text);
- z2 = Convert.ToDouble(textBox13.Text);
- z3 = Convert.ToDouble(textBox14.Text);
- z4 = Convert.ToDouble(textBox15.Text);
- z5 = Convert.ToDouble(textBox16.Text);
- z6 = Convert.ToDouble(textBox17.Text);
- z7 = Convert.ToDouble(textBox18.Text);
- z8 = Convert.ToDouble(textBox19.Text);
- z9 = Convert.ToDouble(textBox20.Text);
- z10 = Convert.ToDouble(textBox21.Text);
- z11 = Convert.ToDouble(textBox22.Text);
- z12 = Convert.ToDouble(textBox36.Text);
- if (((double)100 - z1) < 0)
- { y1 = 0; }
- else { y1 = (double)100 - z1; }
- if ((y1 - z2) < 0)
- { y2 = 0; }
- else { y2 = y1 - z2; }
- if ((y2 - z3) < 0)
- { y3 = 0; }
- else { y3 = y2 - z3; }
- if ((y3 - z4) < 0)
- { y4 = 0; }
- else { y4 = y3 - z4; }
- if ((y4 - z5) < 0)
- { y5 = 0; }
- else { y5 = y4 - z5; }
- if ((y5 - z6) < 0)
- { y6 = 0; }
- else { y6 = y5 - z6; }
- if ((y6 - z7) < 0)
- { y7 = 0; }
- else { y7 = y6 - z7; }
- if ((y7 - z8) < 0)
- { y8 = 0; }
- else { y8 = y7 - z8; }
- if ((y8 - z9) < 0)
- { y9 = 0; }
- else { y9 = y8 - z9; }
- if ((y9 - z10) < 0)
- { y10 = 0; }
- else { y10 = y9 - z10; }
- if ((y10 - z11) < 0)
- { y11 = 0; }
- else { y11 = y10 - z11; }
- if ((y11 - z12) < 0)
- { y12 = 0; }
- else { y12 = y11 - z12; }
- if (Math.Abs(sum - 100) > 0.01)
- { prc = ">1%"; }
- else { prc = "-"; }
- textBox23.Text = Math.Round(y1, 2).ToString();
- textBox24.Text = Math.Round(y2, 2).ToString();
- textBox25.Text = Math.Round(y3, 2).ToString();
- textBox26.Text = Math.Round(y4, 2).ToString();
- textBox27.Text = Math.Round(y5, 2).ToString();
- textBox28.Text = Math.Round(y6, 2).ToString();
- textBox29.Text = Math.Round(y7, 2).ToString();
- textBox30.Text = Math.Round(y8, 2).ToString();
- textBox31.Text = Math.Round(y9, 2).ToString();
- textBox32.Text = Math.Round(y10, 2).ToString();
- textBox33.Text = Math.Round(y11, 2).ToString();
- textBox37.Text = y12.ToString();
- textBox35.Text = prc.ToString();
- sum=z1 + z2 + z3 + z4 + z5 + z6 + z7 + z8 + z9 + z10 + z11;
- textBox34.Text = (sum).ToString();
- GraphPane myPane = new GraphPane();
- zedGraphControl1.GraphPane = myPane;
- myPane.CurveList.Clear();
- myPane.Fill = new Fill(Color.White, Color.LightSkyBlue, 45.0f);
- // Ось X будет пересекаться с осью Y на уровне Y = 0
- myPane.XAxis.Cross = 50.0;
- // Заголовок графика и подписи осей
- myPane.Title.Text = "Определение марки песка в соответствии с ГОСТ 2138-91";
- myPane.XAxis.Title.Text = "Размер ячеек";
- myPane.YAxis.Title.Text = "%";
- // Вспомогательная сетка
- myPane.XAxis.MajorGrid.IsVisible = true;
- myPane.YAxis.MajorGrid.IsVisible = true;
- // Вручную задаем последовательность точек графика
- PointPairList list = new PointPairList();
- list.Add(x1,y1);
- list.Add(x2,y2);
- list.Add(x3, y3);
- list.Add(x4, y4);
- list.Add(x5, y5);
- list.Add(x6, y6);
- list.Add(x7, y7);
- list.Add(x8, y8);
- list.Add(x9, y9);
- list.Add(x10, y10);
- list.Add(x11, y11);
- // Строим линию графика
- LineItem myCurve = myPane.AddCurve("График", list, Color.DarkBlue, SymbolType.Circle);
- myCurve.Line.IsSmooth = true;
- myCurve.Line.Width=2;
- // Цвет заполнения круга - колубой
- myCurve.Symbol.Fill.Color = Color.Blue;
- // Тип заполнения - сплошная заливка
- myCurve.Symbol.Fill.Type = FillType.Solid;
- // Размер круга
- myCurve.Symbol.Size = 7;
- myPane.XAxis=
- // Устанавливаем интересующий нас интервал по оси X
- myPane.XAxis.Scale.Min = xmin;
- myPane.XAxis.Scale.Max = xmax;
- // Устанавливаем интересующий нас интервал по оси Y
- myPane.YAxis.Scale.Min = ymin;
- myPane.YAxis.Scale.Max = ymax;
- // Обновляем отображение
- zedGraphControl1.AxisChange();
- zedGraphControl1.Refresh();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д