Плавний график с QCustomPlot

Есть два массива X[0, 20, 40] Y[0 24, 0] (условно) Строим график - получаетса "треугольник" - введите сюда описание изображения"

Вопрос - можно ли с помощью QCustomPlot сделать его плавным как параболу?

Проект делаетса в QtCreator с C++ и подключено QCustomPlot


Ответы (1 шт):

Автор решения: DSuhoi

Пример расчёта координат для построения графика:

#include <iostream>
#include <cmath>


using namespace std;


struct Coords { //структура для хранения координат
    double x, y;        
};

const double PHIS_G = 9.80665;


int main()
{
    double rad, speed, height0, deltaX;
    cout << "Введите угол падения от 0 до 90 градусов: ";
    cin >> rad; 
    rad *= M_PI/180;    //переводим в радианы M_PI - константа из cmath

    cout << "Введите начальную скорость: ";
    cin >> speed;

    cout << "Введите начальную высоту тела: ";
    cin >> height0;

    cout << "Введите частоту хода: ";
    cin >> deltaX;

    int LenCoord = static_cast<int>((pow(speed, 2) * sin(2*rad))/(PHIS_G*deltaX)) + static_cast<int>(height0) + 1;  //вычисляем размер массива координат

    Coords *coord = new Coords[LenCoord];   //выделяем память под массив координат

    cout << "Вычисление координат в диапазоне от 0 до " << LenCoord+1 << ":\n";

    for(int i=0; i<LenCoord; i++){  //обработка формулы падения тела
        coord[i].x =  deltaX*i;
        coord[i].y = coord[i].x*tan(rad) - (PHIS_G * pow(coord[i].x, 2))/(2 * pow(speed, 2) * pow(cos(rad), 2)) + height0;
    }
        //вывод результата
    for(int i=0; i<LenCoord; i++)
        cout << (i+1) << ". (" << coord[i].x << "; " << coord[i].y << ");\n";

    delete [] coord;    //освобождение памяти

    return 0;
}
→ Ссылка