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 ? Никаких проблем с прорисовкой и можно двигать график туда-сюда. |
|
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 ? Никаких проблем с прорисовкой и можно двигать график туда-сюда. |
Попробуй запихнуть в ТЧат несколько тысяч точек, а потом подвигай график. Счастливых часов медитации.
|
|
Shagg |
Отправлено: 03.08.2006, 08:45 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 69
|
Тогда удачи с GL'ом |
|
CyberMind |
Отправлено: 03.08.2006, 08:59 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 29
|
Вот сделал некоторые изменения в проекте из примеров (заменил вывод с формы на панель, заменил перспективную проекцию ортографической). По нажатию на кнопку запускается рисование. Точки добавляются по таймеру в массив: x — время, y — случайное число.
Проект на CBuilder5. Это очень упрощенный вариант, но здесь есть от чего оттолкнуться.
|
|
AVC |
Отправлено: 03.08.2006, 09:14 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE (Steam-x @ 03/08/2006, 07:37) |
Попробуй запихнуть в ТЧат несколько тысяч точек, а потом подвигай график. Счастливых часов медитации.
|
Прямо сию секунду открыто два графика TeeChart даже не fast а просто Line в каждом примерно по 8200 точек (пятисекундный замер входящего-исходящего траввика). Все масштабируется, просматривается, сдвигается и обновляется без малейших тормозов. Мало того, основная задача в других потоках успевает пинговать критичные для меня станции, рассылать сообщения, вести файл протокола, опрашивать оборудование по SNMP, менять собственные иконки на панели задач и caption'ы.
Паралельно с этим я работаю как минимум в Builder, ErWin, Office
Так что не все так страшно
PS. Машина — средняя Cel 2.2 / 512 |
|