C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
И снова график..., Продолжение разговора о графиках.
Steam-x
  Отправлено: 23.10.2003, 08:50


Дежурный стрелочник

Группа: Участник
Сообщений: 60



Привет Всем!
Недавно обсуждался вопрос о графиках, оказывается мне тоже нужно выводить чего-то на график, токма ТЧат не подходит, он очень туго работает с большими массивами. Может кто знает где можно взять компонент, жевательно с исходником, для отображения графиков. Аналог — последние звуковые редакторы Кул, Саунд Фордж или Ваве Лабе...
Заранее блгдрю!
Все!
Успехов!
exp
Отправлено: 24.10.2003, 19:32


Мастер участка

Группа: Участник
Сообщений: 304



А что за график тебе нужен? Просто какая-нибудб функция одного переменного или что послежней?
Если можно по подробней о задаче. smile.gif
Георгий
Отправлено: 25.10.2003, 13:28


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



TChart действительно медленно работает (как, впрочем, и любое другое универсальное средство), но есть несколько способов увеличения производительности:
1. использование TFastLine — перерисовка 32-х графиков из 100 000 точек занимала у меня меньше 1 сек
2. уменьшение числа точек выведенных на график — учёт разрешающей способности (например при 1024*768 на экран для однозначной функции не имеет смысла выводить больше 1024 точек)

Также можно сделать свой обьектик, который используя или Win32API, или Direct3D, или OpenGL решал бы поставленную задачу.
Asher
Отправлено: 27.10.2003, 09:47


Мастер участка

Группа: Модератор
Сообщений: 550



Привет всем.
QUOTE
уменьшение числа точек выведенных на график — учёт разрешающей способности (например при 1024*768 на экран для однозначной функции не имеет смысла выводить больше 1024 точек)

Тогда у меня сразу вопрос — каким образом, ну кроме простого прореживания по индексу, можно решить какие точки выводить.
Плюс к этому данные могут идти с нерегулярным шагом, типа ничего интересного — снимаем медленно, чем выше скорость нарастания или спада — тем чаще.
Может есть у кого такая инфа? По принципам (методам) прореживания?
И еще. Насколько медленно рисование на канве? В смысле как много можно считать чтобы это было быстрее чем рисование в лоб?
Георгий
Отправлено: 27.10.2003, 12:07


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



Выбор алгоритмов прореживания зависит от предметной области — если это показания с датчиков (например температуры), предназначеные для оперативного контроля операторами, то достаточно взять не много точек, но построить 2 графика — max и min значения, а те, кому нужны точные значения смогут подождать, пока график нарисуется — им отслеживание в режиме реального времени не нужно.

У тебя, судя по всему, действительно показания с датчиков идут:
для оперативного контроля я бы сделал так — отрезок разбивается на равные интервалы, за значение в начале берётся значение конца пред отрезка, а за значение конца значение наиболее близкой слева к концу отрезка точки.
а аналитики тебе сами скажут, что они хотят видеть — но обычно у них странная реакция — когда говоришь, что программа может всё за них посчитать и распечатать, то сначала они приходят в уныние smile.gif, а потом начитают хотеть что то понятное только им, да и то на интуитивном уровне smile.gif

На счёт рисования на канве ничего сказать не могу — мне дл операторов TChart + TFastLine хватило, а аналитикам среднего арифметического на том же TFastLine (замеры каждые 3 сек были, если усреднять по 1 часу, то в 1200 раз меньше точек smile.gif
Steam-x
Отправлено: 28.10.2003, 10:20


Дежурный стрелочник

Группа: Участник
Сообщений: 60



Привет Всем!
Спасибо за внимание к моему вопросу!
Я хочу уточнить вопрос. Мне необходимо сделать просмотровую программу для анализа вибрационных параметров на временном интервале примерно 30-50 мин. с частотой опроса 320 кГц. На участки бить немогу (это не удобно для анализа), прореживать также не могу поскольку интересна каждая точка (поскольку это может быть либо сбой либо выброс датчика). Как аналог мне бы подошло графическое представление wav-файла в Cool edit pro 1.0 и выше.
Все!
Успехов!
Георгий
Отправлено: 28.10.2003, 20:47


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



ohmy.gif ну и скорость — 320 000 замеров в секунду ohmy.gif сколько памяти это жрёт и на каком железе работает?
Gedeon
Отправлено: 29.10.2003, 11:41


Ветеран

Группа: Модератор
Сообщений: 1742



А вариант типа это мерять, писать куда-нить массив, а потом просматривать в нужных границах мож подойдет.
Steam-x
Отправлено: 29.10.2003, 17:10


Дежурный стрелочник

Группа: Участник
Сообщений: 60



Привет
Ввод инфы идет под АДСП адаптером, поэтому такая скорость. Но это максимум, реально опросность чуть ниже, но не намного. И просматривать нужно как в реальном так и в отложенном времени, я бы даже уточнил, в реальном времени идет прореживание, а в отложенном нужно выводить все точки для гармонического и др. анализов.
Все!
Успехов!

Вернуться в Вопросы программирования в C++Builder