@bulavko

Почему WinForms странно строит графики, в зависимости от максимального значения икса?

Доброго времени суток)

Писал программу для построение графика синуса и косинуса и столкнулся с такой деликатной проблемой:
компонент Chart очень странно себя ведёт, если не умножить переменную, которая отвечает за максимальное значение на оси иксов, на 2пи

"Шерстил" StackOverflow - так и ничего не нашёл...

Прикрепляю код:
private void buttonPlot_Click(object sender, EventArgs e)
        {
            double xMin = 0;
            double xMax = double.Parse(textBoxTime.Text) * 6.28;
            int discretization = int.Parse(textBoxDiscretization.Text);
            double time = double.Parse(textBoxTime.Text);
            double deltaT = Math.Round((double)discretization / (double)time);
            int amplitude = int.Parse(textBoxAmplitude.Text);
            double frequency = double.Parse(textBoxFrequency.Text);
            double phase = ConvertToRadians(double.Parse(textBoxPhase.Text));
            double step = 0.5;

            int plotPointsCount = (int)(Math.Ceiling((xMax - xMin)) / step) + 1;

            double[] x = new double[plotPointsCount];
            double[] ySin = new double[plotPointsCount];
            double[] yCos = new double[plotPointsCount];

            for (int i = 0; i < plotPointsCount; i++)

            {
                x[i] = xMin + step * i;
                ySin[i] = amplitude * Math.Sin(x[i] + (2 * Math.PI * frequency * deltaT + phase));
                yCos[i] = amplitude * Math.Cos(x[i] + (2 * Math.PI * frequency * deltaT + phase));
                x[i] = x[i] / 6.25;

            }

            chart1.ChartAreas[0].AxisX.Minimum = xMin;
            chart1.ChartAreas[0].AxisX.Maximum = xMax / 6.28;
            chart1.ChartAreas[0].AxisX.MajorGrid.Interval = step;

            chart1.Series[0].Points.DataBindXY(x, ySin);
            chart1.Series[1].Points.DataBindXY(x, yCos);
        }


и фотографии того, как ведёт себя компонент Chart:
1) переменная не умножена и не разделенна на 2пи
2) переменная умножена и разделенна на 2пи

5c22c4f5d1add158910541.jpeg5c22c503dcaf0344233156.jpeg
  • Вопрос задан
  • 49 просмотров
Решения вопроса 1
@Sumor
x[i] = x[i] / 6.25;
Ну собственно если у вас xMax равен 1, то и получается что график строится до 1/6,25 = 0,16 как и выглядит на экране.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
ИММА Москва
До 120 000 руб.
PHYGITALISM Москва
от 70 000 руб.
COSMOS Москва
от 110 000 до 140 000 руб.
22 марта 2019, в 06:30
10000 руб./за проект
22 марта 2019, в 03:12
20000 руб./за проект
22 марта 2019, в 00:24
10000 руб./за проект