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

 
Вывод графиков, Создаем осцилограф на компе
Steam-x
Отправлено: 01.08.2006, 08:41


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

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



Есть проблема — делаю осцилограф на компе. В комп вставлена плата ввода цифровой информации. Необходимо в реальном времени выводить графики. Сразу скажу, что рисование на ТИмедже и уж темболее на ТЧате не подходит — слишком медленно. Поэтому, мне нужно какой-нибудь быстрый способ. Пример — любой музыкальный редактор (Кул, СаундФорж, ВавеЛаб, Кубэйс, Сонар)
CyberMind
Отправлено: 01.08.2006, 09:24


Ученик-кочегар

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



Кинь на форму панель и выводи на нее графику через OpenGL.
Guest
Отправлено: 02.08.2006, 08:24


Не зарегистрирован







QUOTE (CyberMind @ 01/08/2006, 09:24)
Кинь на форму панель и выводи на нее графику через OpenGL.

Да! Спасибо за обстоятельный ответ... Хорошо хоть ответ не такой -> Делаешь приложение и выводишь в его окне все что душе угодно.
Спасибо за внимание к вопросу, но если можно, то поподробнее.
CyberMind
Отправлено: 02.08.2006, 14:15


Ученик-кочегар

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



В примерах CBuilder (есть такая папка Examples в папке установленного билдера) найди папку OpenGL. Там есть проекты, где демонстрируется рисование на форме средствами OpenGL. Инициализацию возьми оттуда, а функцию рисования (в проекте Rotate это DrawScene) замени своей функцией. Как я понимаю тебе необходимо будет просто выводить массив точек, соединенных ломаной, на экран. Этот массив будет пополняться новыми точками и снова выводиться на экран в удобном виде. Из-за частого обновления экрана появится желанная динамика. А бросить панель на форму советовал для того, чтобы была занята не вся форма графиком, а только та ее часть, где панель. В инициализации необходимо будет подменить handle формы на handle панели. Если хочешь могу быстро набросать подобный проект, а там сам будешь затачивать его под себя и наводить красоту.
Shagg
Отправлено: 03.08.2006, 07:17


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

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



А не проще использовать компонент TChart ohmy.gif ? Никаких проблем с прорисовкой и можно двигать график туда-сюда.
Steam-x
Отправлено: 03.08.2006, 08:28


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

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



QUOTE (CyberMind @ 02/08/2006, 14:15)
В примерах CBuilder (есть такая папка Examples в папке установленного билдера) ...

Большое спасибо. Это уже что-то. Буду пробовать.
Steam-x
Отправлено: 03.08.2006, 08:37


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

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



QUOTE (Shagg @ 03/08/2006, 07:17)
А не проще использовать компонент TChart ohmy.gif ? Никаких проблем с прорисовкой и можно двигать график туда-сюда.

Попробуй запихнуть в ТЧат несколько тысяч точек, а потом подвигай график. Счастливых часов медитации.
Shagg
Отправлено: 03.08.2006, 08:45


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

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



Тогда удачи с GL'ом
CyberMind
Отправлено: 03.08.2006, 08:59


Ученик-кочегар

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



Вот сделал некоторые изменения в проекте из примеров (заменил вывод с формы на панель, заменил перспективную проекцию ортографической). По нажатию на кнопку запускается рисование. Точки добавляются по таймеру в массив: x — время, y — случайное число.
Проект на CBuilder5. Это очень упрощенный вариант, но здесь есть от чего оттолкнуться.

User Attached Image Скачать файл
OSCILOGRAPH.zip


AVC
Отправлено: 03.08.2006, 09:14


Ветеран

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



QUOTE (Steam-x @ 03/08/2006, 07:37)

Попробуй запихнуть в ТЧат несколько тысяч точек, а потом подвигай график. Счастливых часов медитации.

Прямо сию секунду открыто два графика TeeChart даже не fast а просто Line в каждом примерно по 8200 точек (пятисекундный замер входящего-исходящего траввика). Все масштабируется, просматривается, сдвигается и обновляется без малейших тормозов. Мало того, основная задача в других потоках успевает пинговать критичные для меня станции, рассылать сообщения, вести файл протокола, опрашивать оборудование по SNMP, менять собственные иконки на панели задач и caption'ы.
Паралельно с этим я работаю как минимум в Builder, ErWin, Office

Так что не все так страшно biggrin.gif

PS. Машина — средняя Cel 2.2 / 512

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