Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 20.01.2023
Сообщений: 14

Построение параметрического графика

25.04.2023, 09:17. Показов 1052. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нарисовать параметрический график функции. Значения параметров (A,B,C,D) задавать в текстовых полях и сделать кнопку для перерисовки.

y = A tg (Bx + C) + D
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.04.2023, 09:17
Ответы с готовыми решениями:

Построение параметрического графика
Всем доброго времени суток! Помогите решить проблему с построением параметрического графика Заранее буду благодарен за помощь)

Построение параметрического графика.
Здравствуйте, уважаемые форумчане! :) Недавно получил задание по машинной геометрии - написать программу на C#, которая будет рисовать...

Построение графических примитивов,построение графика в среде Turbo С++ 4.0
Ребята помогите пожалуйста нужно переделать две программы, они написаны в PascalABC.NET нужно переделать в Turbo C++ 4.0 Помогите...

2
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
25.04.2023, 09:18
Какими средствами?
0
Заблокирован
25.04.2023, 09:44
Лучший ответ Сообщение было отмечено fancy- как решение

Решение

Для создания графического интерфейса на C++ с текстовыми полями и кнопкой, вы можете использовать библиотеку Qt. Для построения графиков вы можете использовать библиотеку QCustomPlot, которая работает с Qt.

Установите библиотеку Qt и настройте ее в вашей среде разработки (например, Qt Creator).
Установите библиотеку QCustomPlot.
Создайте простое приложение с интерфейсом, содержащим текстовые поля для ввода параметров A, B, C, D, и кнопкой для перерисовки графика.

Вот пример кода, который создает графический интерфейс и построение графика:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <QApplication>
#include <QWidget>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <qcustomplot.h>
 
class GraphWidget : public QWidget {
public:
    GraphWidget(QWidget* parent = nullptr) : QWidget(parent) {
        QVBoxLayout* layout = new QVBoxLayout(this);
 
        QHBoxLayout* parametersLayout = new QHBoxLayout();
 
        parametersLayout->addWidget(new QLabel("A:"));
        aEdit = new QLineEdit("1");
        parametersLayout->addWidget(aEdit);
 
        parametersLayout->addWidget(new QLabel("B:"));
        bEdit = new QLineEdit("1");
        parametersLayout->addWidget(bEdit);
 
        parametersLayout->addWidget(new QLabel("C:"));
        cEdit = new QLineEdit("0");
        parametersLayout->addWidget(cEdit);
 
        parametersLayout->addWidget(new QLabel("D:"));
        dEdit = new QLineEdit("0");
        parametersLayout->addWidget(dEdit);
 
        QPushButton* updateButton = new QPushButton("Update");
        parametersLayout->addWidget(updateButton);
 
        layout->addLayout(parametersLayout);
 
        plot = new QCustomPlot(this);
        layout->addWidget(plot);
 
        connect(updateButton, &QPushButton::clicked, this, &GraphWidget::updateGraph);
 
        updateGraph();
    }
 
private:
    void updateGraph() {
        double A = aEdit->text().toDouble();
        double B = bEdit->text().toDouble();
        double C = cEdit->text().toDouble();
        double D = dEdit->text().toDouble();
 
        QVector<double> x(1000), y(1000);
        for (int i = 0; i < 1000; ++i) {
            x[i] = i / 100.0;
            y[i] = A * tan(B * x[i] + C) + D;
        }
 
        plot->addGraph();
        plot->graph(0)->setData(x, y);
        plot->xAxis->setLabel("x");
        plot->yAxis->setLabel("y");
        plot->xAxis->setRange(0, 10);
        plot->yAxis->setRange(-10, 10);
        plot->replot();
    }
 
    QLineEdit* aEdit;
    QLineEdit* bEdit;
    QLineEdit* cEdit;
    QLineEdit* dEdit;
    QCustomPlot* plot;
};
 
int main(int argc, char* argv[]) {
    QApplication app(argc, argv);
 
    GraphWidget widget;
    widget.show();
 
    return app.exec();
}
Помимо этого, вам нужно будет добавить необходимые файлы .pro и CMakeLists.txt в зависимости от вашей среды разработки и системы сборки. Ниже примеры для Qt Creator и qmake:

Файл .pro:
Code
1
2
3
4
5
6
TEMPLATE = app
CONFIG += c++11
SOURCES += main.cpp
HEADERS +=
QT += widgets
LIBS += -lqcustomplot
Этот файл определяет конфигурацию вашего проекта для qmake. Здесь указано, что вы используете C++11, виджеты Qt и библиотеку QCustomPlot.

Теперь создайте файл CMakeLists.txt для использования с CMake и Qt Creator:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
cmake_minimum_required(VERSION 3.5)
project(ParametricPlot)
 
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
 
find_package(Qt5 COMPONENTS Widgets REQUIRED)
find_package(QCustomPlot REQUIRED)
 
add_executable(ParametricPlot
  main.cpp
)
 
target_link_libraries(ParametricPlot PRIVATE Qt5::Widgets QCustomPlot)
Этот файл определяет конфигурацию вашего проекта для CMake. Здесь указано, что вы используете C++11, виджеты Qt и библиотеку QCustomPlot.

Теперь вы можете создать проект в Qt Creator или другой среде разработки, настроить его для использования с Qt и QCustomPlot, и скомпилировать код. При выполнении приложения вы увидите интерфейс с текстовыми полями для ввода параметров A, B, C, D и кнопкой для обновления графика.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.04.2023, 09:44
Помогаю со студенческими работами здесь

Реализация загрузки данных графика, а затем построение этого графика
Добрый день! Есть окно в GUIDE, в нем кнопка Загрузить данные. По нажатию на эту кнопку, она обрабатывает данные и сразу строит график в...

Построение графика производной для каждого графика из 3 режимов
Дорогие друзья, прошу помочь доделать три программы. В каждой программе выводится по одному графику и нужно чтобы каждая программа выводила...

написать программу ( графика, построение графика функции)
Для функции , график которой видно на картинке, вывести на экран значения Y для X= 0, 0.25, 0.5, ...19.75 и вести на экран график. Оси...

Построение графика графика квадратичной функции
Как построить график квадратичной функции? Построил только простую параболу, как ее сдвигать? int ixPrev = -1, iyPrev =...

Построение графика графика квадратичной функции
Как построить график квадратичной функции? Построил только простую параболу, как ее сдвигать? int ixPrev = -1, iyPrev =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru