Построение графиков в кривых рисования библиотеки qt и библиотеки customplot

У меня проблема с библиотекой QCustomPlot. Я сделал программу, где пользователь вводит формулу и значения x, затем программа вычисляет значения y и отображает их в красивой таблице.

После этого программа использует значения x и рассчитанные значения y для построения квадратичной функции. Но вместо рисования кривой он рисует четкие линии. Как статистическая диаграмма или что-то подобное.

Я хотел бы знать, как я могу скрыть их, например

х- -1, -2, 1, 2, 0

у — -0,5, -0,25, 0,5, 0,25, 0

к квадратичной функции.

если вам нужно вот код, где я рисую график.

kiek = 0;

//limitas is just counter which counted how many times user typed values

// user typed x values and calculated values are stored in double type arrayQVector<double> x(limitas), y(limitas);for(int z= 0; z<limitas; z++){

x[z] = iksai[kiek];
y[z] = d[kiek];
kiek++;

}
ui->customPlot->addGraph();
ui->customPlot->graph(0)->setData(x, y);

max = *std::max_element(d, d + limitas);

max1 = *std::max_element(iksai, iksai + limitas);

min1 = *std::min_element(d, d + limitas);

min = *std::min_element(iksai, iksai + limitas);

ui->customPlot->xAxis->setRange(min, max1);
ui->customPlot->yAxis->setRange(min1, max);

ui->customPlot->replot();

1

Решение

На самом деле это не связанный с QCustomPlot вопрос.

Вы должны заполнить пространство между точками несколькими сплайнами.
Вот хорошая статья, которая показывает, что такое сплайны: http://cairnarvon.rotahall.org/2009/07/05/quadratic-spline-interpolation/

Так что в принципе вам нужно два QCPGraph«S.

Первый график должен содержать ваши ключевые точки без каких-либо соединительных линий (QCPGraph::LineStyle::lsNone).

Второй график должен содержать рассчитанные (по вашему коду!) Сплайн-точки с некоторым разрешением (например, сплайн-точки для minX, minX + dx, minX + dx * 2 … maxX) и без скаттеров.

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

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]