///////////////////////////////////////////////////////////////////////////////////////////////////
// dqtplotdialog.h
// Пример диалогового окна для рисования графика и полутонового изображения выборки
// при помощи QCustomPlot (http://www.qcustomplot.com/index.php/introduction).
//
// Кафедра Прикладной и компьютерной оптики, http://aco.ifmo.ru
// Университет ИТМО
///////////////////////////////////////////////////////////////////////////////////////////////////
#ifndef DQTPLOTDIALOG_H
#define DQTPLOTDIALOG_H
#include <QDialog>
#include "ui_dqtplotdialog.h"
class QCustomPlot;
class SampleComplex;
//-------------------------------------------------------------------------------------------------
class DQtPlotDialog : public QDialog
{
Q_OBJECT
public:
// конструктор
DQtPlotDialog(QWidget* parent = 0, Qt::WindowFlags f = 0);
// деструктор
~DQtPlotDialog();
// обработка событий
public slots:
// отклик на нажатие кнопки "нарисовать"
void onBtnDraw();
// перехватывается событие Resize для диалогового окна
// (это нужно чтобы сохранить одинаковоые масштабы по осям Х и Y для полутонового отображения)
void resizeEvent(QResizeEvent *event);
private:
// рисование графика центральных сечений по Х и Y для двумерного массива
// sample - массив комплексных чисел, отображается только вещественная часть
// qGraph - имя виджета, на котором рисовать
// параметры графика:
// dx - шаг по оси Х
// sXName, sYName - подписи к осям Х, Y
void DrawGraph(SampleComplex& sample, QCustomPlot *qGraph, double dx, QString sXName, QString sYName);
// рисование полутонового отображения двумерного массива
// sample - массив комплексных чисел, отображается только вещественная часть
// qGraph - имя виджета, на котором рисовать
// параметры графика:
// dx - шаг по оси Х
// sXName, sYName - подписи к осям Х, Y
void DrawGrayscale(SampleComplex& sample, QCustomPlot *qGrayscale, double dx, QString sXName, QString sYName);
// функция, задающая одинаковый масштаб по осям X и Y
// должна вызываться при первоначальной отрисовке и при масштабировании
void RescaleCustomPlot(QCustomPlot *qPlot);
/// ресурсы диалога
Ui::DQtPlotDialog m_ui;
};
//-------------------------------------------------------------------------------------------------
#endif // DQTPLOTDIALOG_H