Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Программирование
>
.NET технология от и до
> Тема:
C# График
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: C# График (Прочитано 17101 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
Ахматар
Гость
C# График
«
:
30-10-2008 13:03 »
Добрый день,
У меня тут такая вот проблемка стоит:
Нужно отобразить в окне динамический график. Обновление вида графика раз в 50мс,а поступление новой точки графика раз в 4мс. Графиков 5 штук + на каждом отображается по 1000 точек. Рисую прямо в canvas используя polyline.
По таймеру обновления экрана тупо добавляю новые полученные точки к polyline и удаляю лишее точки слева + сдвигаю его (нужно чтобы отображалось всегда последние 1000 точек на экране, так уж надо=) )
В общем все бы хорошо, но загвоздка тут в том, что грузит процессор сильновато на 60-65% примерно.
Может кто подсказать или посоветовать как разгрузить процессор?
Были умные мысли на тему того, чтобы использовать DirectDraw и внеэкранные поверхности для прорисовки и последующей подмены изображений(сейчас вот разбираюсь с этим, если у кого есть что-то об этом тоже был бы благодарен).
Записан
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
Re: C# График
«
Ответ #1 :
30-10-2008 13:05 »
рисовать надо "в уме" , а перерисовывать на экране по таймеру. Тогда тормозюкать не будет
Записан
>FAQ ПО ПРОГР.
>ССЫЛКИ ПО ПРОГР.
>Правила"Неотложки"
Ахматар
Гость
Re: C# График
«
Ответ #2 :
03-11-2008 09:29 »
Алексей, а можно немного поподробнее про "в уме" ?=) если можно,то на примере=)
Записан
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
Re: C# График
«
Ответ #3 :
03-11-2008 11:40 »
ну то есть я имею в виду - не надо пытаться постоянно перерисовывать новую информацию, всё равно человек так быстро не умеет воспринимать, достаточно перерисовывать дискретно , с частотой 24 Гц или повыше.
А расчёт координат для вывода можно делать в озу , чтобы при очередной перерисовке не считать, а просто отрисовать .
Например, приходят данные: номер измерения N , его время - t, измерены параметры A,B,C. Запоминаешь в массиве этот замЕр, а так же считаешь некоторые промежуточные координаты для будущей отрисовки , скажем Y=(трёхэтажная формула от A, B, C)
Так ты имеешь набор точек для построения графика Y(t) . В момент вывода нужно лишь смещать и масштабировать ось t и/или масштабировать ось Y
Вот типа этого )
Записан
>FAQ ПО ПРОГР.
>ССЫЛКИ ПО ПРОГР.
>Правила"Неотложки"
Ахматар
Гость
Re: C# График
«
Ответ #4 :
06-11-2008 13:43 »
Спасибо, вроде бы стало по приличнее=)
Записан
_serj_dev
Участник
Offline
Re: C# График
«
Ответ #5 :
01-09-2010 06:04 »
А можно код посмотреть? Очень интересно.
Хотя сомневаюсь, что хозяин топика сюда еще заглянет.
«
Последнее редактирование: 01-09-2010 06:36 от _serj_dev
»
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Программирование
>
.NET технология от и до
> Тема:
C# График
Загружается...