Люди помогите пожалуйста с компонентом qcustomplot.
Есть вот такой код 2х кнопок:
Кликните здесь для просмотра всего текста
C++ (Qt) |
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
| void MainWindow::on_pushButton_23_clicked()//Кнопка для прорисовки основной функции введенной пльзователем
{
char* p = new char(ui->lineEdit->text().length() + 1);
strcpy(p, ui->lineEdit->text().toLatin1().constData());
functparcer funct = functparcer(p);
double dlina = ui->lineEdit_2->text().toDouble();
double a = -dlina; //Начало интервала, где рисуем график по оси Ox
double b = dlina+1; //Конец интервала, где рисуем график по оси Ox
double h = 0.001; //Шаг, с которым будем пробегать по оси Ox
int n=10*((b-a)/h + 1); //Вычисляем количество точек, которые будем отрисовывать
QVector<double> x(n), y(n); //Массивы координат точек
//Вычисляем наши данные
int i=0;
for (double X=a; X<=b; X+=h)//Пробегаем по всем точкам
{
x[i] = X;
y[i] = funct.getY(X);//Формула нашей функции
i++;
}
ui->widget->addGraph();
//Говорим, что отрисовать нужно график по нашим двум массивам x и y
ui->widget->graph(0)->setData(x, y);
ui->widget->graph(0)->setPen(QColor(50, 50, 50, 255));
//Подписываем оси Ox и Oy
ui->widget->xAxis->setLabel("x");
ui->widget->yAxis->setLabel("y");
ui->widget->xAxis->setRange(-dlina, dlina);//Для оси Ox
ui->widget->yAxis->setRange(-dlina, dlina);//Для оси Oy
//Установим область, которая будет показываться на графике
ui->widget->replot();//И перерисуем график на нашем widget
} |
|
Кликните здесь для просмотра всего текста
C++ (Qt) |
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
| void MainWindow::on_pushButton_30_clicked()//кнпока для построения второй производной
{
char* p = new char(ui->lineEdit->text().length() + 1);
strcpy(p, ui->lineEdit->text().toUtf8().constData());
functparcer funct1 = functparcer(p);
double dlina = ui->lineEdit_2->text().toDouble();
double a = -dlina; //Начало интервала, где рисуем график по оси Ox
double b = dlina+1; //Конец интервала, где рисуем график по оси Ox
double h = 0.001; //Шаг, с которым будем пробегать по оси Ox
int n=10*((b-a)/h + 1); //Вычисляем количество точек, которые будем отрисовывать
QVector<double> x(n), y(n); //Массивы координат точек
//Вычисляем наши данные
int i=0;
for (double X=a; X<=b; X+=h)
{
x[i]=X;
y[i]=((-((funct1.getY(X+MAL)-funct1.getY(X))/MAL)+((funct1.getY(X+MAL+MAL)-funct1.getY(X+MAL))/MAL))/MAL);
i++;
}
ui->widget->addGraph();
ui->widget->graph(0)->setData(x, y);
ui->widget->graph(0)->setPen(QColor(0, 0, 250, 255));
ui->widget->xAxis->setLabel("x");
ui->widget->yAxis->setLabel("y");
ui->widget->xAxis->setRange(-dlina, dlina);//Для оси Ox
ui->widget->yAxis->setRange(-dlina, dlina);//Для оси Oy
ui->widget->replot();//И перерисуем график на нашем widget
} |
|
Нужно что бы на нем при нажатии кнопок на поле customplot отображались сразу несколько графиков функции, но в данный момент график просто перерисовывается и заново при нажатии на кнопку.
Может кто нибудь подскажет как сделать так что бы 2 графика одновременно прорисовывались.