|
14 / 14 / 16
Регистрация: 26.01.2015
Сообщений: 213
|
|
Написать приложение, которое строит график математической функции y=f(x)02.03.2017, 13:38. Показов 7641. Ответов 36
Метки нет (Все метки)
Добрый день, коллеги!
Столкнулся с задачей, в которой испытываю затруднения. Ранее не сталкивался с подобным, т.к. не дошёл ещё до таких тем. Сама задача: Написать на языке C++ приложение для Windows, которое строит график заданной математической функции y=f(x) (см. ниже) в окне и/или в графическом файле на диске (выберите популярный формат, например, PNG). Код отрисовки графика в окне и на картинке должен быть по возможности отделен от кода вычисления функции; плавное изменение размеров окна должно по возможности оставаться плавным. График должен выводиться во всю клиентскую область окна. По возможности, предусмотрите масштабирование и прокрутку для просмотра. В качестве среды используйте MSVS2015 или QtCreator 4.2.1 (Qt5.8); если потребуется, используйте сторонние библиотеки. Фреймворк: Qt или MFC (Qt можно использовать и в MSVS2015). Код со всеми зависимостями должен собираться под Windows 7 в MSVS2015 или в QtCreator 4.2.1 (Qt5.8). Функция: y(x) = x2 / sin(x/4*PI) + exp(ln(|x| * |sin(PI*x/2 + 1)|)) на интервале [ -10; 20 ] с шагом 0.02. Прежде у меня вопросы по самой функции: 1)PI - это число Пи (~3.14) 2)Что означает знак "|" - это модуля знак. Путает то, что в тексте задачи PI и |, то есть I и | выглядят практически одинаково. 3)Ln - это натуральный логарифм, да? Как на практике строить график примерно понимаю, а вот в коде не имею представления. Подозреваю, что это какие-то функции из библиотеки cmath и что-то из графических библиотек. Прошу написать код задания с подробным описанием действия, чтобы я смог проанализировать и разобраться и ответить на 3 вопроса, приведённых выше.
0
|
|
| 02.03.2017, 13:38 | |
|
Ответы с готовыми решениями:
36
Приложение которое строит график функции √x+x^2=10 Создать приложение, которое строит график многочлена с заданными коэффициентами |
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 03.03.2017, 14:03 | |
|
1
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 03.03.2017, 14:32 | |
|
Что за QChart? Какой-то сторонний компонент?
0
|
|
|
14 / 14 / 16
Регистрация: 26.01.2015
Сообщений: 213
|
|
| 03.03.2017, 14:55 [ТС] | |
|
avgoor, уточните, пожалуйста, я вообще графикой не занимался до сего момента. По возможности дайте ссылку на ресурс.
0
|
|
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 03.03.2017, 14:59 | |
|
Ofelion, это часть Qt специально для графиков. Правда только GPL.
0
|
|
|
14 / 14 / 16
Регистрация: 26.01.2015
Сообщений: 213
|
|
| 03.03.2017, 15:04 [ТС] | |
|
avgoor, спасибо, поищу информацию.
0
|
|
|
14 / 14 / 16
Регистрация: 26.01.2015
Сообщений: 213
|
|||||||||||
| 05.03.2017, 02:45 [ТС] | |||||||||||
|
Немного продвинулся, но результата так и не получил пока. Кто может, посмотрите, пож-та, мой проект, прикрепляю архив. Чтобы был понятен ход моих действий, приведу сайт, на основании которого я писал: http://blog.kislenko.net/show.php?id=1138 . Если я всё правильно сделал, то остаётся одна ошибка -
ui->centralWidget->graph(0)->setData(vx,vy); Сам cpp:
0
|
|||||||||||
|
14 / 14 / 16
Регистрация: 26.01.2015
Сообщений: 213
|
|
| 05.03.2017, 02:46 [ТС] | |
|
Только мне лучше бы без меню "Файл" сделать, просто чтобы график отображался. Но не смог это сделать.
0
|
|
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 05.03.2017, 03:06 | |
|
Ofelion, Он же вам пишет, что нет подходящей перегрузки. setData принимает QVector, а вы передаете std::vector. Можно использовать ...->setData(QVector<double>::fromStdVector( vx),...
1
|
|
|
14 / 14 / 16
Регистрация: 26.01.2015
Сообщений: 213
|
||||||
| 05.03.2017, 03:53 [ТС] | ||||||
|
avgoor, сделал так:
ui->centralWidget->graph(0)->setData(QVector<double>::fromStdVector( vx),fromStdVector(vy); ^ почему второй from незадекларирован?
0
|
||||||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|||||||
| 05.03.2017, 04:23 | |||||||
Сообщение было отмечено Ofelion как решение
РешениеТ.е. должно быть ui->centralWidget->graph(0)->setData(QVector<double>::fromStdVector( vx), QVector<double>::fromStdVector(vy); Вам рано Qt. Посмотрел ваш проект... глобальные переменные в хедере - это за гранью добра и зла. 1) Создайте новый проект, при этом удалите галку generate form. 2) Удалите все файлы кроме main.cpp 3) Добавьте qcustomplot в хедеры и сорцы 4) код main.cpp:
1
|
|||||||
| 05.03.2017, 07:51 | |
|
Не по теме: avgoor, сомнительно, что без редактора форм будет проще. Достаточно перенести переменные в класс формы.
0
|
|
| 05.03.2017, 15:00 | |
|
Не по теме: nmcf, это лично мое мнение. Возможно я неправ, но ИМХО к началу использования фреймворков надо знать, что такое единицы трансляции и оператор разрешения видимости. А я просто переписал код ТС в стиле хеллоуворлда.
0
|
|
|
14 / 14 / 16
Регистрация: 26.01.2015
Сообщений: 213
|
||||||
| 05.03.2017, 19:15 [ТС] | ||||||
|
avgoor, почему-то стала высвечиваться ошибка в файле customplot.cpp
В предыдущем проекте такого не было. Добавлено через 6 минут Это мой первый, так сказать, "глобальный" проект, поэтому туплю так ((
0
|
||||||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 05.03.2017, 20:02 | |
|
Ofelion, В файл .pro надо добавить в строчку QT += .... printsupport. Затем пункты меню run qmake, rebuild.
1
|
|
|
14 / 14 / 16
Регистрация: 26.01.2015
Сообщений: 213
|
|
| 05.03.2017, 22:45 [ТС] | |
|
avgoor, огромное вам спасибо! Всё получилось. Посредством этой задачи уяснил, что необходимо учить фреймворк, чтобы уметь делать реальные проекты, а не консольные приложения.
0
|
|
|
14 / 14 / 16
Регистрация: 26.01.2015
Сообщений: 213
|
|
| 05.03.2017, 23:22 [ТС] | |
|
avgoor, вот такой график вывелся
0
|
|
| 05.03.2017, 23:22 | |
|
Написать программу, которая строит график параметрической функции Написать программу, которая строит график функции: x=C1*(t-1/2*sin2t)+C2, y=C1*sin^2t Написать код который строит график по функции, которую нужно ввести самому. Написать приложение для рисования графика математической функции. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|