УДК 004.428

ВЫБОР ГРАФИЧЕСКОЙ БИБЛИОТЕКИ ДЛЯ ВИЗУАЛИЗАЦИИ ДАННЫХ ПРИ РАЗРАБОТКЕ ПРОГРАММНЫХ СРЕДСТВ СИНТЕЗА И АНАЛИЗА ВЕСОВЫХ ФУНКЦИЙ

Пискаев Кирилл Юрьевич1, Никулкин Владимир Александрович2, Васильев Максим Александрович3
1Пензенский государственный технологический университет, Старший преподаватель кафедры информационных технологий и систем
2Пензенский государственный технологический университет, студент
3Пензенский государственный технологический университет, студент

Аннотация
В работе обосновывается выбор и приводятся результаты использования библиотеки QWT при разработке пользовательского интерфейса программы для синтеза и анализа весовых функций интегрирующих аналого-цифровых преобразователей.

Ключевые слова: библиотека Qt, библиотека QWT, весовые функции, визуализация данных, диаграмма классов


CHOICE OF GRAPHIC LIBRARY FOR VISUALIZATION DATA AT DEVELOPMENT OF SOFTWARE OF SYNTHESIS AND ANALYSIS OF WEIGHT FUNCTIONS

Piskaev Kirill Jurevich1, Nikulkin Vladimir Aleksandrovich2, Vasilev Maksim Aleksandrovich3
1Penza State Technological University, Senior Lecturer, Department of Information Technology and Systems
2Penza State Technological University, student
3Penza State Technological University, student

Abstract
The article explains the results of the selection and use of library QWT for development of user interface software for synthesis and analysis of weight functions for integrating analog-to-digital converters.

Keywords: class diagram, data visualization, library Qt, library QWT, the weighting function


Библиографическая ссылка на статью:
Пискаев К.Ю., Никулкин В.А., Васильев М.А. Выбор графической библиотеки для визуализации данных при разработке программных средств синтеза и анализа весовых функций // Современная техника и технологии. 2015. № 9 [Электронный ресурс]. URL: http://technology.snauka.ru/2015/09/7771 (дата обращения: 28.05.2017).

При разработке программ, в которых требуется визуализация данных (например, построение графиков функций), возникает дилемма: писать подпрограмму построения «с нуля» или использовать готовые специализированные библиотеки. Первый вариант является трудоемким, использование же библиотек позволяет значительно сократить время разработки. Однако, возникает проблема выбора наиболее подходящей библиотеки под конкретную практическую задачу.

В работе будет описано решение, выбранное авторами в процессе разработки программы синтеза и анализа весовых функций, и полученные с его помощью результаты.

Разрабатываемая программа представляет собой инженерный инструмент для моделирования и расчета частотных характеристик интегрирующих аналого-цифровых преобразователей с весовым интегрированием. Пользователь путем задания исходных параметров (вида реализуемой весовой функции, значений весовых коэффициентов, частотного диапазона и др.) в результате моделирования в автоматическом режиме получает АЧХ, формируемую данной весовой функцией (ВФ), в канале интегрирующего преобразования. При этом пользователю предоставляются инструменты для исследования и сравнительного анализа получаемых АЧХ. Основным аналогом разрабатываемой программы является модуль FDATool (Filter Design & Analysis Tool) среды моделирования MATLAB, предназначенный для проектирования дискретных фильтров.

Рассмотрим наиболее популярные из применяемых сегодня библиотек для визуализации данных: QWT, mCtrl, GtkGraph, Qt Charts.

QWT (Qt Widgets for Technical Applications) – библиотека представляющая собой набор Qt-виджетов, для визуализации (графического представления) числовых данных. Включает в себя компоненты, позволяющие не только отображать, но и масштабировать/перемещать полученные графики, оформлять их меняя цвет линий, размер шрифта, форму маркеров и т.д. Кроме привязки к Qt C++, есть привязки к PyQt, QtRuby, PythonQt [1].

mCtrl – библиотека обеспечивающая дополнительный набор элементов пользовательского интерфейса для приложений, написанных на win32 api. Включает компоненты для построения различных видов графиков [2].

GtkGraph – набор Gtk-виджетов, обеспечивающих визуализацию числовых данных [3].

Qt Charts – платный компонент Qt, для графического представления данных. Для отображения может использовать QWidgets, QGraphicsWidget, QML [4].

Преимущества и недостатки каждой приведены в сравнительной таблице 1.

Таблица 1 – Сравнительные характеристики библиотек

Библиотека

Платформы

Варианты визуализации

Дополнительные функции

Стоимость

QWT

Windows, Linux, OS X, Android, Symbian

Графики кривых, точечные графики, спектрограммы, гистограммы

Масштабирование, перемещение, стилизация, экспортирование графиков. Дополнительные виджеты: шкалы, ползунки, компас, таймеры.

бесплатная

mCtrl

Windows

Графики кривых, точечные графики, гистограммы, круговые диаграммы.

Стилизация графиков, дополнительные элементы пользовательского интерфейса.

бесплатная

GtkGraph

Windows, Linux, OS X

Графики кривых

Стилизация графиков

бесплатная

QtCharts

Windows, Linux, OS X, Android, Symbian

Графики кривых, точечные графики, гистограммы, круговые диаграммы.

Стилизация графиков, перемещение, масштабирование.

платная

Среди рассмотренных вариантов, наиболее функциональной и гибкой библиотекой является QWT, разработанная Джозефом Вилгеном (Josef Wilgen) и Уве Раттманом (Uwe Rathmann). Помимо виджета для двумерного отображения данных (QwtPlot) она включает в себя классы для отображения данных в разных масштабах осей, различные стили отображения кривых и маркеров на виджете QwtPlot, а также некоторые другие вспомогательные виджеты. Библиотека содержит компоненты и классы для следующих построений:

  • плоские кривые, отрезки;
  • точечные диаграммы;
  • спектрограммы, изолинии;
  • гистограммы;
  • элементы управления: ручки-регуляторы, ползунки, компасы, различные индикаторы [1].

    Данная графическая библиотека позволяет значительно упростить процесс визуализации данных в программе. Упрощение заключается в следующем: нет необходимости вручную прописывать элементы отображения, такие как шкалы координат, сетки, кривые данных и другие. Следует лишь задавать параметры этих элементов. Qwt позволяет работать с достаточно большими объемами данных. Её можно использовать в разработке кроссплатформенных решений с использованием библиотек Qt [5].

    Qwt распространяется на условиях особой лицензии, Qwt License, Version 1.0, представляющей собой LGPL с тремя исключениями, касающимися виджетов, производных от Qwt, статической линковки, а также сопровождения приложений, использующих Qwt, копией лицензии Qwt. На рисунке 1 приведена диаграмма классов QWT.


    Рисунок 1 – Диаграмма классов библиотеки QWT

    Использование библиотек Qt и QWT позволило разработать интуитивно понятный интерфейс для разрабатываемой программы (названной WF Plotter), показанный на рисунке 2. Главное окно включает: меню (1), окно для построения графика АЧХ весовой функции (2), окно для построения графика ВФ во временной области (3), блок настроек построения (4), блок анализа ВФ (5), кнопка построения (6).


    Рисунок 2 – Интерфейс программы WF Plotter

    Для построения графиков, нужно заполнить вкладку параметров и нажать кнопку «Построить графики», пример правильного заполнения полей приведен на рисунке 3. Рядом с вкладкой параметров построения располагается вкладка, с помощью которой можно проанализировать построенную АЧХ. Все построенные графики можно сохранить в нескольких популярных форматах изображений (как растровых, так и векторных), а также в формате PDF.

    Рисунок 3 – Пример построения графиков в программе WF Plotter

    Таким образом, использование библиотеки QWT, позволило эффективно решить проблему визуализации данных при разработке программных средств синтеза и анализа весовых функций. Разработанное приложение может быть использовано в научно-исследовательской и опытно-конструкторской работе, в рамках проектирования интегрирующих АЦП с заданными динамическими характеристиками, специалистами соответствующего профиля, а также в учебных целях при подготовке студентов.


Библиографический список
  1. Информационный сайт “LINUX.ORG.RU” [Электронный документ] URL: http://www.linux.org.ru/tag/qwt (дата обращения: 20.08.2015).
  2. Информационный сайт “Sourceforge” [Электронный документ] URL: http://sourceforge.net/projects/mctrl/ (дата обращения: 23.08.2015).
  3. Раздел Gtkgraph информационного сайта “Sourceforge” [Электронный документ] URL: http://gtkgraph.sourceforge.net/ (дата обращения: 22.08.2015).
  4. Информационный сайт “QT” [Электронный документ] URL: http://doc.qt.io/QtCharts/ (дата обращения: 23.08.2015).
  5. Информационный сайт “Хабхабр” [Электронный документ] URL: http://habrahabr.ru/post/211204/ (дата обращения: 20.08.2015).
  6. Роберт Лафоре. Объектно-ориентированное программирование в С++. / Пер. с англ. А. Кузнецов, М. Назаров, Владимир Шрага Изд.: «Питер», 2015. – 928 с.
  7. Г. Шилдт C++. Базовый курс / Пер. с англ. Н. Ручко. Изд.: «Вильямс», 2014. – 624 с.
  8. Стенли Б. Липпман, Жози Лажойе, Барбара Э. Му. Язык программирования C++. Базовый курс. Изд.: «Вильямс», 2014. – 1120 с.
  9. Марк Саммерфилд. Qt. Профессиональное программирование. Разработка кроссплатформенных приложений на С++. / Пер. с англ. А. Слинкин. Изд.: «Символ-Плюс», 2011. – 560 с.


Все статьи автора «Васильев Максим Александрович»


© Если вы обнаружили нарушение авторских или смежных прав, пожалуйста, незамедлительно сообщите нам об этом по электронной почте или через форму обратной связи.

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

Вы должны авторизоваться, чтобы оставить комментарий.

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться: