У меня проблема с библиотекой QCustomPlot. Я сделал программу, где пользователь вводит формулу и значения x, затем программа вычисляет значения y и отображает их в красивой таблице.
После этого программа использует значения x и рассчитанные значения y для построения квадратичной функции. Но вместо рисования кривой он рисует четкие линии. Как статистическая диаграмма или что-то подобное.
Я хотел бы знать, как я могу скрыть их, например
у — -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();
На самом деле это не связанный с QCustomPlot вопрос.
Вы должны заполнить пространство между точками несколькими сплайнами.
Вот хорошая статья, которая показывает, что такое сплайны: http://cairnarvon.rotahall.org/2009/07/05/quadratic-spline-interpolation/
Так что в принципе вам нужно два QCPGraph
«S.
Первый график должен содержать ваши ключевые точки без каких-либо соединительных линий (QCPGraph::LineStyle::lsNone
).
Второй график должен содержать рассчитанные (по вашему коду!) Сплайн-точки с некоторым разрешением (например, сплайн-точки для minX, minX + dx, minX + dx * 2 … maxX) и без скаттеров.
Таким образом, вы получите ваши очки связаны друг с другом с помощью сексуальных кривых.
Других решений пока нет …