Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2011, 16:56   #1
gslim
Пользователь
 
Регистрация: 31.05.2011
Сообщений: 18
Восклицание График

Добрый день ув. форумчане , вот такой вопрос : как сделать график в Visual Studio C#, чтобы он бесконечный , ну вот например Диспетчер Задач вкладка Быстродействие - там график , вот примерно такой же нужен , кто может подсказать как такой смастерить ?

Заранее благодарен.
gslim вне форума Ответить с цитированием
Старый 31.05.2011, 19:47   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Дык, просто там данные перегоняются регулярно. Там имеется таблица (массив) значений. Они регулярно смещаются. Это как в Экзеле. Сначала там строят такую табличку, а по ней график. Также и здесь, только данные периодически обновляются. Для чего вам это?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 31.05.2011, 21:11   #3
gslim
Пользователь
 
Регистрация: 31.05.2011
Сообщений: 18
По умолчанию

Наверное я просто плохой пример привел , я хотел сказать что движение графика мне такое нужно. А данный я буду брать из Com-порта , т.е. я буду отсылать запрос , мне на этот запрос будет приходить пакет , и вот по принятому пакету на графике должна строится точка , таких запросов несколько , по этим пакетам и будет строится график.
gslim вне форума Ответить с цитированием
Старый 31.05.2011, 21:15   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

ну вот и загоняйте значения в массив (смещая их по мере переполнения), а массив выводите на экран, когда нужна отрисовка или когда пришли новые данные

размер массива можно взять == сумма "ширин" всех мониторов в системе
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 31.05.2011, 21:42   #5
gslim
Пользователь
 
Регистрация: 31.05.2011
Сообщений: 18
По умолчанию

вы немного не поняли опять же меня В этом деле новичок , с графиками вообще раньше не работал, хотелось бы ссылочку на мануал , ну или же объяснить немножко как и что сделать. Буду благодарен.
gslim вне форума Ответить с цитированием
Старый 31.05.2011, 22:32   #6
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

Если совсем элементарно, то вот:
Код:
        Random rand = new Random();
        List<int> graph = new List<int>();

        private void Form1_Load(object sender, EventArgs e)
        {
            Timer timer = new Timer();
            timer.Tick += new EventHandler(timer_Tick);
            timer.Interval = 100;
            timer.Start();
        }

        void timer_Tick(object sender, EventArgs e)
        {
            graph.Add(rand.Next(0, 100));
            Invalidate();
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            if (graph.Count > 1)
                e.Graphics.DrawCurve(new Pen(Brushes.Black, 0.2f), graph.Select((g, i) => new Point(i * 2, g)).ToArray());
        }
Spawn™Production® вне форума Ответить с цитированием
Старый 01.06.2011, 09:46   #7
gslim
Пользователь
 
Регистрация: 31.05.2011
Сообщений: 18
По умолчанию

Спасибо , сейчас попробую , ну мне нужно вот что , когда я принимаю пакеты , они весят от 0 до 255 байт , вот по этим принятым пакетам и отстраивать график , к примеру мне пришел пакет который весит 20 байт , на графике там где 20 ставятся точка , 2 пакет к примеру 30 байтов , на шкале Y ставится точка на 30 , и строится линия.
gslim вне форума Ответить с цитированием
Старый 01.06.2011, 09:51   #8
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Ну и стройте. Вам же объяснили как это делать - загоняйте свои данные в список. Строите график. потом убираете первый элемент, а в конец добавляете новый пакет и снова строите график и так пока не надоест...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 01.06.2011, 10:11   #9
gslim
Пользователь
 
Регистрация: 31.05.2011
Сообщений: 18
По умолчанию

а можно какой нить пример, если вам не трудно , буду благодарен.
gslim вне форума Ответить с цитированием
Старый 01.06.2011, 10:25   #10
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Пост #6 чем не угодил? Обновление данных происходит в строке
Код:
graph.Add(rand.Next(0, 100));
Только он случайные числа в интервале от 1 до 100 пихает. А ты туда свои засовывай. И еще он не предусмотрел тот факт, что данные нужно высвобождать - то есть они будут копиться и копиться. А их из списка нужно выкидывать позже, а то прога вылетит.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
График C# Привет Общие вопросы .NET 0 08.06.2010 08:58
график ddeman666 Помощь студентам 1 03.06.2010 16:50
график ddeman666 Помощь студентам 1 02.06.2010 11:37
График Paul_AG Общие вопросы C/C++ 3 29.05.2009 22:20