Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.70/250: Рейтинг темы: голосов - 250, средняя оценка - 4.70
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301

График в Form

16.10.2009, 20:42. Показов 46128. Ответов 53
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите можно ли строить графики не в отдельном окне Excel допустим в прямо в том же Form? И если не сложно разъясните как =)
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.10.2009, 20:42
Ответы с готовыми решениями:

График функции Windows Form
привет!мне необходимо реализоват график функции в Windows Form разработка осуществляется через Visual Studio. наверновначале я ввожу...

Windows Form График Tg(x)
мне график нужен для тангенса.. и я нифига не представляю как его наколдовать..

Построить график функции (Form)
Здравствуйте. Помогите пожалуйста(нет понятия о том как строится график в делфи с использованием свойств и методов) :Подготовить и...

53
 Аватар для wwowa
308 / 261 / 70
Регистрация: 01.12.2008
Сообщений: 1,031
20.10.2009, 13:59
Студворк — интернет-сервис помощи студентам
private void button1_Click(object sender, EventArgs e)
{
CreateGraph(zedGraphControl1); //добавить
}
private void Form1_Load(object sender, EventArgs e)
{
// CreateGraph(zedGraphControl1); //убрать

}
0
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
20.10.2009, 14:26  [ТС]
не работает так пробовал

Добавлено через 20 минут
Цитата Сообщение от kirill29 Посмотреть сообщение
piloterist, посмотри эту тему: Раскрашивание графика в ZedGraph с помощью combobox'a
В приложении у меня строится парабола. Коэффициенты вводятся в textbox'ы. С помощью combobox график перекрашивается. Если будет нужно, то позже могут выложить весь проект.
Попробовал сделать как у тебя вот код :

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
  private void DrawGraph()
            {
 
            }
 
            private void Form1_Load(object sender, EventArgs e)
            {
                CreateGraph(zedGraphControl);
            }
 
            private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    double g = System.Convert.ToDouble(textBox1.Text);
                    CreateGraph(zedGraphControl);
                }
                finally
                {
                }  
            }
            private void CreateGraph(ZedGraphControl zgc)
            {
                double y;
                GraphPane pane = zgc.GraphPane;
                pane.CurveList.Clear();
                PointPairList list = new PointPairList();
                double xmin = 0;
                double xmax = 20;
                double xmin_limit = 0;
                double xmax_limit = 20;
                double ymin_limit = 0;
                double ymax_limit = 20;
                for (double x = 0; x <= 20; x += 1)
                {
                    y = (x*x*g);
                    list.Add(x, y);
                }
                LineItem myCurve = pane.AddCurve("Sinc", list, Color.Blue, SymbolType.None);
                pane.XAxis.Scale.Min = xmin_limit;
                pane.XAxis.Scale.Max = xmax_limit;
                pane.YAxis.Scale.Min = ymin_limit;
                pane.YAxis.Scale.Max = ymax_limit;
                zedGraph.AxisChange();
                zedGraph.Invalidate();
            }
так не строит совсем,

если убрать из формулы g
C#
1
2
 y = (x*x*g);
                    list.Add(x, y);
то строит сразу при запуске программы
0
 Аватар для kirill29
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
20.10.2009, 14:31
Цитата Сообщение от wwowa Посмотреть сообщение
private void button1_Click(object sender, EventArgs e)
{
CreateGraph(zedGraphControl1); //добавить
}
private void Form1_Load(object sender, EventArgs e)
{
// CreateGraph(zedGraphControl1); //убрать

}
Этот совет работает. Вот только перерисовываться не будет. Для перерисовки добавь в CreateGraph zgc.Refresh(). И еще - для построения синусоиды измени вот здесь:
C#
1
2
3
4
5
6
7
8
9
private double f(double x)
        {
            if (x == 0)
            {
                return 1;
            }
            x = Math.Sin(x);
            return x;
        }
0
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
20.10.2009, 14:35  [ТС]
Вот воплощение совета - не работает
Что-то не так сделал?
P.S. Синусойда тут причем ?) мне синусойда не нужна
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 private void DrawGraph()
            {
 
            }
 
            private void Form1_Load(object sender, EventArgs e)
            {
                //CreateGraph(zedGraphControl);
            }
 
            private void button1_Click(object sender, EventArgs e)
            {
 
                    CreateGraph(zedGraphControl);
              
            }
            private void CreateGraph(ZedGraphControl zgc)
            {
                double y;
                
                GraphPane pane = zgc.GraphPane;
                pane.CurveList.Clear();
                PointPairList list = new PointPairList();
                double xmin = 0;
                double xmax = 20;
                double xmin_limit = 0;
                double xmax_limit = 20;
                double ymin_limit = 0;
                double ymax_limit = 20;
                for (double x = 0; x <= 20; x += 1)
                {
                    y = (x*x);
                    list.Add(x, y);
                }
                LineItem myCurve = pane.AddCurve("Sinc", list, Color.Blue, SymbolType.None);
                pane.XAxis.Scale.Min = xmin_limit;
                pane.XAxis.Scale.Max = xmax_limit;
                pane.YAxis.Scale.Min = ymin_limit;
                pane.YAxis.Scale.Max = ymax_limit;
                zedGraph.AxisChange();
                zedGraph.Invalidate();
            }
 
            private void zedGraphControl_Load(object sender, EventArgs e)
            {
 
            }
0
 Аватар для kirill29
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
20.10.2009, 14:39
Цитата Сообщение от piloterist Посмотреть сообщение
Синусойда тут причем ?) мне синусойда не нужна
Как пример.
А как не работает? Какую ошибку дает?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public Form1()
        {
            InitializeComponent();
        }
 
        private double f(double x)
        {
            if (x == 0)
            {
                return 1;
            }
            x = 2*Math.Sin(x);
            return x;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            CreateGraph(zedGraphControl1);
        }
 
        private void CreateGraph(ZedGraphControl zgc)
        {
 
            GraphPane pane = zgc.GraphPane;
            pane.CurveList.Clear();
            PointPairList list = new PointPairList();
            double xmin = -50;
            double xmax = 50;
            double xmin_limit = -50;
            double xmax_limit = 50;
            double ymin_limit = -2;
            double ymax_limit = 2;
            for (double x = xmin; x <= xmax; x +=0.01)
            {
                list.Add(x, f(x));
            }
            LineItem myCurve = pane.AddCurve("Sinc", list, Color.Blue, SymbolType.None);
            pane.XAxis.Scale.Min = xmin_limit;
            pane.XAxis.Scale.Max = xmax_limit;
            pane.YAxis.Scale.Min = ymin_limit;
            pane.YAxis.Scale.Max = ymax_limit;
            zgc.AxisChange();
            zgc.Refresh();
            zgc.Invalidate();
        }
Вот код. У меня он запускается и все работает.
0
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
20.10.2009, 14:47  [ТС]
Незнаю в чем была ошибка все компелировалось просто не строило.

Скопировал ваш код все заработало спасибо. под свой график переделаю =)
0
 Аватар для kirill29
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
20.10.2009, 15:03
Просто скопировал код и ничего с ним не делал?
1
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
20.10.2009, 15:58  [ТС]
да просто скопировал и он начал строить синусойды при нажатии на кнопку.

А можно как-нибудь при нажатии на кнопку очищать область zedGraph?
0
 Аватар для kirill29
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
20.10.2009, 16:13
Цитата Сообщение от piloterist Посмотреть сообщение
да просто скопировал и он начал строить синусойды при нажатии на кнопку.
У тебя в коде использовался ZedGraphControl, а у меня ZedGraphControl1.
0
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
20.10.2009, 16:16  [ТС]
я у себя тоже сделал с единицей
0
 Аватар для kirill29
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
20.10.2009, 16:17
Может это и неправильно, но можно по нажатию на кнопку создавать пустое поле ZedGraph с такими же параметрами.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        private void button2_Click(object sender, EventArgs e)
        {
            ZedGraphClear(zedGraphControl1);
        }
 
        private void ZedGraphClear(ZedGraphControl zgs) 
        {
            GraphPane pane = zgs.GraphPane;
            pane.CurveList.Clear();
            double xmin_limit = -10;
            double xmax_limit = 10;
            double ymin_limit = -2;
            double ymax_limit = 2;
            pane.XAxis.Scale.Min = xmin_limit;
            pane.XAxis.Scale.Max = xmax_limit;
            pane.YAxis.Scale.Min = ymin_limit;
            pane.YAxis.Scale.Max = ymax_limit;
            zgs.AxisChange();
            zgs.Invalidate();
        }
2
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
20.10.2009, 17:04  [ТС]
как временное решение подойдет спасибо
0
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
08.11.2009, 14:44  [ТС]
Снова нужна ваша помощь !

Как строить значения на графике в виде звездочек например =) или хотя бы точками. Чтобы они не соединялись а просто отдельно стоящими были и разными цветами желательно =)

C#
1
2
3
4
5
6
list.Add(nn1, y1);
 
                                LineItem myCurve1 = pane.AddCurve("Sinc", list, Color.Blue, SymbolType.None);
                                zgc.AxisChange();
                                zgc.Refresh();
                                zgc.Invalidate();
вот таким образом соединяет в линию что надо изменить ?

Добавлено через 11 минут
Да и ещё вопросик.Можно ли сделать чтобы в zedGraphe сверху не отображалось каким цветом какой график а то пол экрана надписью забивает
0
 Аватар для kirill29
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
08.11.2009, 22:25
Для установки значений в виде символов используй SymbolType
C#
1
LineItem myCurve1 = pane.AddCurve("Sinc", list, Color.Blue, SymbolType.Star)
Добавлено через 3 минуты
Чтобы сделать линии невидимыми:
C#
1
myCurve1.Line.IsVisible = false;
1
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
08.11.2009, 22:29  [ТС]
Но это мелочи самое главное что мне мешают надписи сверху над графиком которые показывают цвет графика и чето ещё =)
0
 Аватар для kirill29
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
08.11.2009, 22:50
Вот так(если правильно понял):
C#
1
LineItem myCurve1 = pane.AddCurve("", list, Color.Blue, SymbolType.Star)
2
0 / 0 / 1
Регистрация: 12.06.2009
Сообщений: 60
11.11.2009, 21:10
я скопировала код но почему-то не работает, дает ошибку:
Error1 The type or namespace name 'ZedGraphControl' could not be found (are you missing a using directive or an assembly reference?) . Может нужно включить что-то в Using
0
 Аватар для Mike
18 / 18 / 2
Регистрация: 20.01.2009
Сообщений: 71
11.11.2009, 21:17
ЗэдГраф это сторонний элемент управления(контролЪ), его нужно скачивать, например вот тут
0
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
29.11.2009, 19:56  [ТС]
Привет. снова я =)

Подскажите можно задать в зедграфе диапазон оси например чтобы по х было от 0 до 100 и не больше не при каких условиях. и при этом при построении графика если он залазит за ограничение ошибок не вылетало а просто не влезшей частин е было видно.
0
 Аватар для kirill29
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
29.11.2009, 20:28
Цитата Сообщение от piloterist Посмотреть сообщение
Привет. снова я =)

Подскажите можно задать в зедграфе диапазон оси например чтобы по х было от 0 до 100 и не больше не при каких условиях. и при этом при построении графика если он залазит за ограничение ошибок не вылетало а просто не влезшей частин е было видно.
Можно. Вот так:
C#
1
2
            pane.XAxis.Scale.Min = 0;
            pane.XAxis.Scale.Max=100;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.11.2009, 20:28

Создать график квадратного уравнения в windows form
Помогите создать график квадратного уравнения в windows form. Очень срочно

Математический маятник С++ Windows Form (нарисовать график в панели)
Помогите! Очень срочно и очень нужно нарисовать график из чарта2 в новую панель! Вот код программы, он работает, но как сделать этот...

Form.Hide ; Form.Close ; Form.Show
Здравствуйте. Вот интересует один вопрос, в чём различие между Form1.Close; Form2.Show и Form2.Show; Form1.Close? Т.е. в 1 случае сперва...

External exception C000001D между Form.OnCreate и Form.OnShow
Поставил Delphi 10.3 Rio, так как в нём, вроде бы, наконец исправили очень важный для меня момент - Z-Order для нативных контролов. ...

Расскажите о пробеле. <% public ts ts = 'нет данных' %> <form> <input .... value =<%=ts%>> </form>
Присваиваю тексту значнение &lt;input .... value ='нет данных'&gt; всё хорошо. Усложняю задачу &lt;% public ts ts = 'нет данных' ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru