Неверно рисуются графики - C#
Формулировка задачи:
Здравствуйте! Помогите, пожалуйста, разобраться, что я делаю не так. По заданию лабараторной у меня должно быть три кнопки, по нажатию на которые будут строиться три разные графика функции. И все как бы вышло, но только при повторном нажатии график меняется, и при нажатиях на другие кнопки появляются графики, но не такие, как должны быть. Подскажите в чем беда, пожалуйста. Заранее благодарен
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Graph { public partial class Form1 : Form { public Form1() { InitializeComponent(); } #region variables double x = 0; double y = 0; #endregion private void button1_Click(object sender, EventArgs e) { chart2.Series[0].Points.Clear(); chart2.Series[0].LegendText = "Функция 1"; chart2.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline; for (int i = 0; i < 1000; i++) { double y = ((Math.Pow(x, 2) - 1) * (Math.Pow(x, 2) - 4) * (Math.Pow(x, 2) + 9)); chart2.Series[0].Points.AddXY(x, y); x = x + 0.001; } }//функция 1 private void button2_Click(object sender, EventArgs e) { chart2.Series[0].Points.Clear(); chart2.Series[0].LegendText = "Функция 2"; chart2.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline; for (int i = 0; i < 1000; i++) { double y = ((3 - 2 * (1 / Math.Tan(x))) / (Math.Cos(x) * Math.Cos(x))); chart2.Series[0].Points.AddXY(x, y); x = x + 0.001; } }//функция 2 private void button3_Click(object sender, EventArgs e) { chart2.Series[0].Points.Clear(); chart2.Series[0].LegendText = "Функция 3"; chart2.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline; for (int i = 0; i < 1000; i++) { double y = ((Math.Pow(x, 2)) / ((Math.Pow((x * Math.Sin(x) + Math.Cos(x)), 2)))); chart2.Series[0].Points.AddXY(x, y); x = x + 0.001; } }//функция 3 private void chart2_Click(object sender, EventArgs e) { } } }
Решение задачи: «Неверно рисуются графики»
textual
Листинг программы
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Graph { public partial class Form1 : Form { public Form1() { InitializeComponent(); } #region variables double x = 0; double y = 0; #endregion private void button1_Click(object sender, EventArgs e) { double x = 0; double y = 0; chart2.Series[0].Points.Clear(); chart2.Series[0].LegendText = "Функция 1"; chart2.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline; for (int i = 0; i < 1000; i++) { y = ((Math.Pow(x, 2) - 1) * (Math.Pow(x, 2) - 4) * (Math.Pow(x, 2) + 9)); chart2.Series[0].Points.AddXY(x, y); x = x + 0.001; } }//функция 1 private void button2_Click(object sender, EventArgs e) { double x = 0; double y = 0; chart2.Series[0].Points.Clear(); chart2.Series[0].LegendText = "Функция 2"; chart2.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline; for (int i = 0; i < 1000; i++) { y = ((3 - 2 * (1 / Math.Tan(x))) / (Math.Cos(x) * Math.Cos(x))); chart2.Series[0].Points.AddXY(x, y); x = x + 0.001; } }//функция 2 private void button3_Click(object sender, EventArgs e) { double x = 0; double y = 0; chart2.Series[0].Points.Clear(); chart2.Series[0].LegendText = "Функция 3"; chart2.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline; for (int i = 0; i < 1000; i++) { y = ((Math.Pow(x, 2)) / ((Math.Pow((x * Math.Sin(x) + Math.Cos(x)), 2)))); chart2.Series[0].Points.AddXY(x, y); x = x + 0.001; } }//функция 3 private void chart2_Click(object sender, EventArgs e) { } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д