Russian Qt Forum
Ноябрь 22, 2024, 16:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QwtPlotSpectrogram в Qwt в библиотеке.  (Прочитано 7590 раз)
kvrus
Гость
« : Январь 07, 2011, 14:15 »

Здравствуйте.
Пытаюсь разработать утилитку отображения спектра сигнала во времени (ось x - частота, ось у - время, ось Z уровень сигнала).
Разбираюсь с примером spectrogram приложенным к библиотеке кувт. Но в этом примере спектрограмма не меняется во времени , она как бы создана в QwtRasterData по формуле z = 1.0 / (v1(x,y) * v1(x,y) + v2(x,y) * v2(x,y)); в переопределении виртуального метода value.
Не могу сообразить как мне отобразить спектрограмму из имеющегося массива данных (двумерный массив строки - ось х столбцы - ось у и значения соответствуют значениям z).
Может кто то сталкивался с такой задачей?
Записан
SLiDER
Гость
« Ответ #1 : Январь 19, 2011, 13:37 »

Данный контрол абсолютно не приспособлен для Вашего случая. Единственный вариант это переопределять функцию (метод value у QwtRasterData) возвращающую значение точки запрашиваемой компонентом и рассчитывать её интерполируя для этого Ваши данные. Но тормозить всё это будет чудовищно, так как сколько точек (физических пикселей) будет в Вашей спектрограмме столько раз и будет вызван метод value, т.е. при картинке 800х600, для однократной перерисовки, это будет 480000 вызовов метода.
Записан
Ubuntu_linux
Гость
« Ответ #2 : Январь 24, 2011, 03:53 »

А просто по таймеру реплот ?
Записан
gorec323
Гость
« Ответ #3 : Май 16, 2013, 15:29 »

А просто по таймеру реплот ?

При вызове replot() у меня не получилось обновить спектрограмму. А вот после изменения массива данных пришлось вызывать следующие функции:
Код:
QwtPlotSpectrogram *d_Spectrogram;

.....

d_Spectrogram->invalidateCache();
d_Spectrogram->itemChanged();
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 20.