forked from my3rs/ImageQt
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathdialog_exp_transform.cpp
More file actions
executable file
·57 lines (49 loc) · 1.68 KB
/
dialog_exp_transform.cpp
File metadata and controls
executable file
·57 lines (49 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include "dialog_exp_transform.h"
#include "ui_dialog_exp_transform.h"
DialogExpTransform::DialogExpTransform(QWidget *parent) :
QDialog(parent),
ui(new Ui::DialogExpTransform)
{
ui->setupUi(this);
paintFunctionImage(ui->bDoubleSpinBox->value(), ui->cDoubleSpinBox->value(), ui->aDoubleSpinBox->value());
}
DialogExpTransform::~DialogExpTransform()
{
delete ui;
}
void DialogExpTransform::on_buttonBox_accepted()
{
emit sendData(ui->bDoubleSpinBox->value(), ui->cDoubleSpinBox->value(), ui->aDoubleSpinBox->value());
}
void DialogExpTransform::paintFunctionImage(double b, double c, double a)
{
// generate some data:
QVector<double> x(1001), y(1001); // initialize with entries 0..100
for (int i=0; i<1001; ++i)
{
x[i] = i/50.0 - 10;
y[i] = qPow(b, c*(x[i]-a));
}
// create graph and assign data to it:
ui->customPlot->addGraph();
ui->customPlot->graph(0)->setData(x, y);
// give the axes some labels:
ui->customPlot->xAxis->setLabel("x");
ui->customPlot->yAxis->setLabel("y");
// set axes ranges, so we see all data:
ui->customPlot->xAxis->setRange(-10, 10);
ui->customPlot->yAxis->setRange(-10, 10);
ui->customPlot->replot();
}
void DialogExpTransform::on_bDoubleSpinBox_valueChanged(double arg1)
{
paintFunctionImage(arg1, ui->cDoubleSpinBox->value(), ui->aDoubleSpinBox->value());
}
void DialogExpTransform::on_cDoubleSpinBox_valueChanged(double arg1)
{
paintFunctionImage(ui->bDoubleSpinBox->value(), arg1, ui->aDoubleSpinBox->value());
}
void DialogExpTransform::on_aDoubleSpinBox_valueChanged(double arg1)
{
paintFunctionImage(ui->bDoubleSpinBox->value(), ui->cDoubleSpinBox->value(), arg1);
}