График квадратичной функции - C#

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

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

Пишу программу, которая делает график квадратичной функции по её коэффициентам. Смог построить только обычную параболу, как привязать её к коэффициентам(a,b,c)?
            Graphics g = pictureBox1.CreateGraphics();
            g.Clear(SystemColors.Control);
            int a = 0, b = 0, c = 0;
            if ((textBox1.Text.Length == 0) || (textBox2.Text.Length == 0)||(textBox3.Text.Length==0))
                MessageBox.Show("Вы не ввели a или b или c");
            else
            {
                a = Convert.ToInt16(textBox1.Text);
                b = Convert.ToInt16(textBox2.Text);
                c = Convert.ToInt16(textBox2.Text);
            }
            int x1 = -250, x2 = 250;
            int y1 = a * x1 + b*x1 + c;
            int y2 = a * x2 + b*x2 + c;
            float W = 500, H = 400;
            float halfW = W / 2, halfH = H / 2;
 
            int ixPrev = -1, iyPrev = (int)halfH;
            for (int ix = 0; ix < W; ix++)
            {
                float px = (ix - halfW) / halfW;
                px *= (float)Math.PI;
                float py = (float)Math.Pow(px, 2);
                int iy = (int)(halfH - py * halfH);
                g.DrawLine(Pens.Red, ixPrev, iyPrev, ix, iy);
                ixPrev = ix;
                iyPrev = iy;
            }
Помогите!

Решение задачи: «График квадратичной функции»

textual
Листинг программы
using System.Windows.Forms.DataVisualization.Charting;//в References необходимо подключить
        
    public void AddDataPlot(ref double[] X, ref double[] Y)
        {
        //chart1.Series.Add("Series1"); //добавить объект ряда данных
            chart1.Series[0].ChartType = SeriesChartType.Spline; //установить тип графика
            chart1.Series[0].BorderWidth = 2; 
        //chart1.Series[0].Points.Clear();//удалить старые точки
        //предварительно расчитать Y = AX^2+BX+C необходимое количество точек по которым строится график
        //добавить точки на график в виде абсциссы и соответствующей ординаты
            for (int i = 0; i < X.Length; i++)
            {
                chart1.Series[0].Points.AddXY(X[i],Y[i]);
            }
                
        //установить границы осей(необязательно в тривиальном случае устанавливаются автоматически)
            chart1.ChartAreas[0].AxisX.Minimum = chart1.Series[0].Points[0].XValue;
            chart1.ChartAreas[0].AxisX.Maximum = chart1.Series[0].Points[chart1.Series[0].Points.Count - 1].XValue;
            chart1.ChartAreas[0].AxisY.Minimum = MinY;
            chart1.ChartAreas[0].AxisY.Maximum = MaxY;
           
            chart1.Invalidate(); //перерисовать
        }

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


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

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

13   голосов , оценка 4.231 из 5
Похожие ответы