Название: [Решено] Несколько qwt-графиков Отправлено: vunder от Март 28, 2011, 11:35 Вопрос следующего характера. Нужно отображать несколько графиков (графики спектра). Особенность в том, что отображаемые частотные диапазоны не последовательны, это могут быть куски из разных диапазонов, а рисовать их нужно сразу друг за другом, без пустых промежутков, как это делает qwt.
В качестве примера прилагаю скрин. Так два диапзона: 100-110 и 200-203, они разделены белой вертикальной прерывистой линией (это компонент TChart в Delphi). Как такое можно сделать на qwt. Можеть кто другую библиотеку использовал? Название: Re: Несколько qwt-графиков Отправлено: alexman от Март 28, 2011, 11:50 void QwtPlotItem::attach( QwtPlot* plot )
В данном случае можно использовать QwtPlotCurve. Название: Re: Несколько qwt-графиков Отправлено: vunder от Март 28, 2011, 13:08 Для тех "кто в танке и в каске", а также для тех, кто не читает текст сообщения: диапазоны графиков отличаются друг от друга. Вот, что получается, если просто добавить 2 графика 100-110 и 200-210
А мне нужно, чтобы графики следовали друг за другом без разрыва Название: Re: Несколько qwt-графиков Отправлено: alexman от Март 28, 2011, 13:17 Можно координаты у одного из графиков пересчитать, то есть сделать чтобы сразу 2-ой шел за 1-ым! Ну а для отображения шкалы переопределить метод
Код: QwtText QwtAbstractScaleDraw::label( double value ) const [virtual] Название: Re: Несколько qwt-графиков Отправлено: vunder от Март 28, 2011, 13:21 А переопределение отображения графика нет такого?
Как вариант пересчитывать значения по оси абсцисс и менять подписи к шкале, может еще варианты? Название: Re: Несколько qwt-графиков Отправлено: alexman от Март 28, 2011, 13:51 void QwtPlotItem::draw( QPainter* p, const QwtScaleMap& xMap, const QwtScaleMap& yMap, const QRect& viewRect ) const
Название: Re: Несколько qwt-графиков Отправлено: vunder от Март 28, 2011, 13:52 И что мне делать в этом методе?
Название: Re: Несколько qwt-графиков Отправлено: alexman от Март 28, 2011, 14:55 А переопределение отображения графика нет такого? Ответ:Код: void QwtPlotItem::draw( QPainter* p, const QwtScaleMap& xMap, const QwtScaleMap& yMap, const QRect& viewRect ) const Как минимум рисовать что-то ;) Название: Re: Несколько qwt-графиков Отправлено: vunder от Март 28, 2011, 15:00 Я конечно понимаю, что на тупой вопрос тупой ответ, но не настолько же. Я итак знаю, что можно переопредлить метод draw() но что именно там делать, какой алгоритм работы для данного случая?
Название: Re: Несколько qwt-графиков Отправлено: alexman от Март 28, 2011, 15:24 Да по сути тоже самое: о разрывах в классе знаем, во время перерисовки сдвигаем данные нужным образом. virtual QwtDoubleRect boundingRect() const; - стоит еще переопределить!
Название: Re: Несколько qwt-графиков Отправлено: vunder от Апрель 04, 2011, 12:54 Использовал первый вариант: значения по оси ординат перерассчитывались таким образом, чтобы они последовательно шли друг за другом, без "разрывов". Также был создан класс наследник от QwtScaleDraw, в котором был перекрыт метод lable()
|