@soja

Как строить график в c# wpf?

нужно создать программу для отображения графиков
один у меня получился, а тот что с корнем в прямую линию строится
так как я только начал, то трудно сразу заметить ошибку
помогите чем можете )))))

private void Vpered_Click_1(object sender, RoutedEventArgs e)
        {
            Polyline pl = new Polyline();
            pl.Stroke = Brushes.Red;
            pl.StrokeThickness = 2;
            Polyline pl2 = new Polyline();
            pl2.Stroke = Brushes.Blue;
            pl2.StrokeDashArray.Add(5);
            pl2.StrokeThickness = 2;
            int x_smeshenie = 700 / 2;
            int y_smeshenie = 150;
            Line lnx = new Line
            {
                X1 = 100,
                Y1 = y_smeshenie,
                X2 = 600,
                Y2 = y_smeshenie,
                Stroke = Brushes.Black,
                StrokeThickness = 1
            };
            Line lny = new Line
            {
                X1 = x_smeshenie,
                Y1 = 0,
                X2 = x_smeshenie,
                Y2 = 300,
                Stroke = Brushes.Black,
                StrokeThickness = 1
            };
            for (double x = -8; x <= 4; x += 0.01)
            {
                double new_y = (x * x * x + 8 * x * x + 16 * x + 128) / (32 + Math.Sin(x));
                pl.Points.Add(new Point(x * 25 + x_smeshenie, -new_y * 25 + y_smeshenie));
            }
            for (double x = -8; x <= 4; x += 0.01)
            {
                double new_y = Math.Pow(x * x * (x + 1), (1 / 3));
                pl2.Points.Add(new Point(x * 25 + x_smeshenie, -new_y * 25 + y_smeshenie));
            }
            g.Children.Add(lnx);
            g.Children.Add(lny);
            g.Children.Add(pl);
            g.Children.Add(pl2);
            g.ClipToBounds = true;
        }
  • Вопрос задан
  • 162 просмотра
Решения вопроса 1
twobomb
@twobomb
Потому-что (1 / 3)
дает 0, и вы всегда возводите в нулевую степень и у вас там вечно еденица, нужно ставить
(1f/ 3f)
Ну и дальше будет второй косяк, пока цикл идет от -8 до -1, у вас будут отрицательные числа и получится что вы попытаетесь возвести отрицательное число в степень 0.3 и получите NaN, поэтому поставьте цикл от 0 до 4+, чтобы не получались отрицательные числа, или сделайте степень не дробной
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы