例如,在Visual Studio中有tChart及其Series屬性,它負責繪製圖形的行。以下是此代碼的一個示例如何使用QCustomPlot在Qt中繪製多行圖形
for (int j = 1; j < Nt - 1; j++)
{
for (int i = 1; i < Nt - 1; i++)
{
chart2->Series["" + (j + 1).ToString()]->Points->AddXY(i, wht[j][i]);
}
}
並用很多行繪製此圖。
但我的任務是在Qt Creator
transfering(因爲在Qt Creator
可以做很多的機會) 此代碼
void MainWindow::drawdifnet(int Nt)
{
int N=Nt;
int N1=pow(N,2);
QVector<double> x22(N), y22(N1);
int ii=0,jj=0;
for (int j = 0; j < Nt ; j++)
{
for (int i = 0; i < Nt ; i++)
{
x22[jj]=i;
y22[ii]=wht[j][i];
ui->widget_2->addGraph();
ui->widget_2->graph(0)->setData(x22,y22);
ii++;
}
jj++;
}
ui->widget_2->xAxis->setLabel("OsX");
ui->widget_2->yAxis->setLabel("OsY");
ui->widget_2->xAxis->setRange(30,30);
ui->widget_2->replot();
}
無法正常工作。 結果是空的小部件
與幫助調試器會首先我檢查QVectors
數據 在這個圖片中看到我的DINAMIC陣列wht[j][i]
在工作和QVector加載yy[ii]
我想循環中的問題。
在QtCustomPlot教程這個問題的解決這個代碼
ui->widget_2->graph(0)->setData(x,y);
ui->widget_2->graph(1)->setData(x11,y11);
ui->widget_2->graph(2)->setData(x22,y22);
但在我的處境行的數量是知道什麼時候該程序的工作。
如何創建和分配我的數組
void created(int Nt, int Nx) ///This function creating my dynamic array
{
wht = new double *[Nt];
for (int i = 0; i < Nt; i++)
wht[i] = new double[Nx];
}
inline double fn(int T, double x) ///these 4 functions for my mathematical part(works good)
{
if (x >= 0)
return T;
return 0;
}
inline double u0(int T, double x)
{
return fn(T, x);
}
inline double u1(int T, double a, int xmin, double t)
{
return fn(T, xmin - a * t);
}
inline double u2(int T, double a, int xmax, double t)
{
return fn(T, xmax - a * t);
}
void calculatedifnet(int xmin, double hx, double ht, double a, int Nx, int Nt, int T)
//These main function.We have the empty array and in this function we fill array. Then we solve in the main loop and the fill the first indexes wht[j]
{
for (int i = 0; i < Nt; i++)
{
wht[0][i] = u0(T, xmin + i*hx);//fill the second indexeswht[null][i]
}
for (int j = 0; j < Nt - 1; j++)//the calculated code(works right).The result writing in wht[j]
{
wht[j + 1][0] = u1(T, a, xmin, j*ht);
for (int i = 1; i < Nt; i++)
{
double dudx = (wht[j][i] - wht[j][i - 1])/hx;
wht[j + 1][i] = -a * dudx * ht + wht[j][i];
}
}
}
爲什麼你的載體之一是大小N和其他N ** 2 = N×N個? – eyllanesc
在ln迭代中,j'計算12點。 每一步'j'包括12步計算座標。 '12圖表= 12點'在每張圖表中,因此有不同的大小。 – beginner
wht的數據類型是什麼? – eyllanesc