QT: Нарисуйте топор ^ 2 + bx + c, используя qcustomplot

В настоящее время у меня есть этот код:

void MainWindow::generateData(QVector<double>& x, QVector<double>& y, double A, double B, double C)
{
for (int i = 0; i < size; ++i)
{
x[i] = (i/50.0 - 1); // x goes from -1 to 1
y[i] = x[i] * x[i];  // y = X^2;
}
}

Этот метод генерирует данные для функции y = x ^ 2.

Что я хочу сделать, это нарисовать сюжет для у = A * x ^ 2 + B * x + C.

Так как мне переписать этот метод, чтобы сделать это?

0

Решение

Очевидным способом было бы заменить y[i] = x[i] * x[i]; с

y[i] = A * x[i] * x[i] + B * x[i] + C;

Менее очевидный, но несколько более производительный подход:

y[i] = C + x[i] * (B + x[i] * A);

Обновить:

В ответ на вопрос ниже, кажется, что коэффициент x-scaling не работает. Таким образом, вся рутина должна выглядеть примерно так:

void MainWindow::generateData(QVector& x, QVector& y, double A, double B, double C)
{
int size = x.size() < y.size() ? x.size() : y.size();

for (int i = 0; i < size; ++i) {
x[i] = (2*i/size - 1);
y[i] = C + x[i] * (B + x[i] * A);
}
}
0

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

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

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