Нахождение координаты пересечения графика с осью - C#

Узнай цену своей работы

Формулировка задачи:

Возникла небольшая проблема. Используя библиотеку ZedGraph был построен график. График пересекает ось Х. Мне нужно узнать координату пересечения графика с осью Х для ее вывода. Как это можно сделать? Был бы благодарен за помощь.

Решение задачи: «Нахождение координаты пересечения графика с осью»

textual
Листинг программы
  1. private void button1_Click(object sender, EventArgs e)
  2.         {            
  3.             x1 = Convert.ToDouble(textBox1.Text);
  4.             x2 = Convert.ToDouble(textBox2.Text);
  5.             x3 = Convert.ToDouble(textBox3.Text);
  6.             x4 = Convert.ToDouble(textBox4.Text);
  7.             x5 = Convert.ToDouble(textBox5.Text);
  8.             x6 = Convert.ToDouble(textBox6.Text);
  9.             x7 = Convert.ToDouble(textBox7.Text);
  10.             x8 = Convert.ToDouble(textBox8.Text);
  11.             x9 = Convert.ToDouble(textBox9.Text);
  12.             x10 = Convert.ToDouble(textBox10.Text);
  13.             x11 = Convert.ToDouble(textBox11.Text);
  14.  
  15.             textBox12.Text = "0";
  16.             textBox13.Text = "0";
  17.             textBox14.Text = "0,20";
  18.             textBox15.Text = "10";
  19.             textBox16.Text = "24";
  20.             textBox17.Text = "35";
  21.             textBox18.Text = "30";
  22.             textBox19.Text = "0,60";
  23.             textBox20.Text = "0,20";
  24.             textBox21.Text = "0";
  25.             textBox22.Text = "0";
  26.             textBox36.Text = "0";
  27.  
  28.             z1 = Convert.ToDouble(textBox12.Text);
  29.             z2 = Convert.ToDouble(textBox13.Text);
  30.             z3 = Convert.ToDouble(textBox14.Text);
  31.             z4 = Convert.ToDouble(textBox15.Text);
  32.             z5 = Convert.ToDouble(textBox16.Text);
  33.             z6 = Convert.ToDouble(textBox17.Text);
  34.             z7 = Convert.ToDouble(textBox18.Text);
  35.             z8 = Convert.ToDouble(textBox19.Text);
  36.             z9 = Convert.ToDouble(textBox20.Text);
  37.             z10 = Convert.ToDouble(textBox21.Text);
  38.             z11 = Convert.ToDouble(textBox22.Text);
  39.             z12 = Convert.ToDouble(textBox36.Text);        
  40.  
  41.             if (((double)100 - z1) < 0)
  42.             { y1 = 0; }
  43.             else { y1 = (double)100 - z1; }
  44.  
  45.             if ((y1 - z2) < 0)
  46.             { y2 = 0; }
  47.             else { y2 = y1 - z2; }
  48.  
  49.             if ((y2 - z3) < 0)
  50.             { y3 = 0; }
  51.             else { y3 = y2 - z3; }
  52.  
  53.             if ((y3 - z4) < 0)
  54.             { y4 = 0; }
  55.             else { y4 = y3 - z4; }
  56.  
  57.             if ((y4 - z5) < 0)
  58.             { y5 = 0; }
  59.             else { y5 = y4 - z5; }
  60.  
  61.             if ((y5 - z6) < 0)
  62.             { y6 = 0; }
  63.             else { y6 = y5 - z6; }
  64.  
  65.             if ((y6 - z7) < 0)
  66.             { y7 = 0; }
  67.             else { y7 = y6 - z7; }
  68.  
  69.             if ((y7 - z8) < 0)
  70.             { y8 = 0; }
  71.             else { y8 = y7 - z8; }
  72.  
  73.             if ((y8 - z9) < 0)
  74.             { y9 = 0; }
  75.             else { y9 = y8 - z9; }
  76.  
  77.             if ((y9 - z10) < 0)
  78.             { y10 = 0; }
  79.             else { y10 = y9 - z10; }
  80.  
  81.             if ((y10 - z11) < 0)
  82.             { y11 = 0; }
  83.             else { y11 = y10 - z11; }
  84.  
  85.             if ((y11 - z12) < 0)
  86.             { y12 = 0; }
  87.             else { y12 = y11 - z12; }
  88.  
  89.             if (Math.Abs(sum - 100) > 0.01)
  90.             { prc = ">1%"; }
  91.             else { prc = "-"; }
  92.  
  93.             textBox23.Text = Math.Round(y1, 2).ToString();
  94.             textBox24.Text = Math.Round(y2, 2).ToString();
  95.             textBox25.Text = Math.Round(y3, 2).ToString();
  96.             textBox26.Text = Math.Round(y4, 2).ToString();
  97.             textBox27.Text = Math.Round(y5, 2).ToString();
  98.             textBox28.Text = Math.Round(y6, 2).ToString();
  99.             textBox29.Text = Math.Round(y7, 2).ToString();
  100.             textBox30.Text = Math.Round(y8, 2).ToString();
  101.             textBox31.Text = Math.Round(y9, 2).ToString();
  102.             textBox32.Text = Math.Round(y10, 2).ToString();
  103.             textBox33.Text = Math.Round(y11, 2).ToString();
  104.             textBox37.Text = y12.ToString();
  105.             textBox35.Text = prc.ToString();
  106.  
  107.             sum=z1 + z2 + z3 + z4 + z5 + z6 + z7 + z8 + z9 + z10 + z11;
  108.             textBox34.Text = (sum).ToString();
  109.                        
  110.             GraphPane myPane = new GraphPane();
  111.             zedGraphControl1.GraphPane = myPane;
  112.             myPane.CurveList.Clear();
  113.             myPane.Fill = new Fill(Color.White, Color.LightSkyBlue, 45.0f);
  114.  
  115.             // Ось X будет пересекаться с осью Y на уровне Y = 0
  116.             myPane.XAxis.Cross = 50.0;          
  117.                        
  118.             // Заголовок графика и подписи осей
  119.             myPane.Title.Text = "Определение марки песка в соответствии с ГОСТ 2138-91";
  120.             myPane.XAxis.Title.Text = "Размер ячеек";
  121.             myPane.YAxis.Title.Text = "%";
  122.  
  123.             // Вспомогательная сетка
  124.             myPane.XAxis.MajorGrid.IsVisible = true;            
  125.             myPane.YAxis.MajorGrid.IsVisible = true;            
  126.  
  127.             // Вручную задаем последовательность точек графика
  128.             PointPairList list = new PointPairList();
  129.  
  130.             list.Add(x1,y1);
  131.             list.Add(x2,y2);
  132.             list.Add(x3, y3);
  133.             list.Add(x4, y4);
  134.             list.Add(x5, y5);
  135.             list.Add(x6, y6);
  136.             list.Add(x7, y7);
  137.             list.Add(x8, y8);
  138.             list.Add(x9, y9);
  139.             list.Add(x10, y10);
  140.             list.Add(x11, y11);
  141.  
  142.             // Строим линию графика
  143.             LineItem myCurve = myPane.AddCurve("График", list, Color.DarkBlue, SymbolType.Circle);
  144.             myCurve.Line.IsSmooth = true;
  145.             myCurve.Line.Width=2;            
  146.             // Цвет заполнения круга - колубой
  147.             myCurve.Symbol.Fill.Color = Color.Blue;
  148.             // Тип заполнения - сплошная заливка
  149.             myCurve.Symbol.Fill.Type = FillType.Solid;
  150.             // Размер круга
  151.             myCurve.Symbol.Size = 7;
  152.             myPane.XAxis=
  153.                                              
  154.             // Устанавливаем интересующий нас интервал по оси X
  155.             myPane.XAxis.Scale.Min = xmin;
  156.             myPane.XAxis.Scale.Max = xmax;
  157.                        
  158.             // Устанавливаем интересующий нас интервал по оси Y
  159.             myPane.YAxis.Scale.Min = ymin;
  160.             myPane.YAxis.Scale.Max = ymax;
  161.            
  162.             // Обновляем отображение
  163.             zedGraphControl1.AxisChange();
  164.             zedGraphControl1.Refresh();
  165.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы