Лабораторная работа №9 Графики функций
Цель лабораторной работы:изучить возможности построения графиков с помощью элемента управленияСhart. Написать и отладить программу построения на экране графика заданной функции.
9.1. Как строится график с помощью элемента управления Chart
Обычно результаты расчетов представляются в виде графиков и диаграмм. Библиотека .NETFrameworkимеет мощный элемент управленияChartдля отображения на экране графической информации (рис. 9.1).

Рис 8.1. Окно программы с элементом управления
Построение графика (диаграммы) производится после вычисления таблицы значений функции y=f(x)на интервале [Xmin, Xmax] с заданным шагом. Полученная таблица передается в специальный массивPointsобъектаSeriesэлемента управленияСhartс помощью методаDataBindXY. Элемент управленияChartосуществляет всю работу по отображению графиков: строит и размечает оси, рисует координатную сетку, подписывает название осей и самого графика, отображает переданную таблицу в виде всевозможных графиков или диаграмм. В элементе управленияСhartможно настроить толщину, стиль и цвет линий, параметры шрифта подписей, шаги разметки координатной сетки и многое другое. В процессе работы программы изменение параметров возможно через обращение к соответствующим свойствам элемента управленияChart. Так, например, свойствоAxisXсодержит значение максимального предела нижней оси графика и при его изменении во время работы программы автоматически изменяется изображение графика.
8.2. Пример написания программы
Задание:составить программу, отображающую графики функцийsin(x) и cos(x) на интервале [Xmin, Xmax]. Предусмотреть возможность изменения разметки координатных осей, а также шага построения таблицы.
Прежде всего, следует поместить на форму сам элемент управления Chart. Он располагается в панели элементов в разделеДанные.
Список графиков хранится в свойстве Series, который можно изменить, выбрав соответствующий пункт в окне свойств. Поскольку на одном поле требуется вывести два отдельных графика функций, нужно добавить ещё один элемент. Оба элемента, и существующий и добавленный, нужно соответствующим образом настроить: изменить тип диаграммыChartTypeнаSpline. Здесь же можно изменить подписи к графикам с абстрактныхSeries1иSeries2наsin(x)иcos(x)– за это отвечает свойствоLegend. Наконец, с помощью свойстваBorderWidthможно сделать линию графика потолще, а затем поменять цвет линии с помощью свойстваColor.
Ниже приведён текст обработчика нажатия кнопки «Расчёт!», который выполняет все требуемые настройки и расчёты и отображает графики функций:
Построение графика произвольной функции c#
подскажите библиотеку для построения произвольных графиков функции в C#. т.е передаёшь например f(x)=sin(x) и на какой-нибудь канвас выводит синусоиду.
![]()
![]()
Все-таки здесь два этапа:
Рассчитать координаты точек на графике. Для этого есть mXparser http://mathparser.org/
Построить сам график из этих точек. Здесь миллион вариантов, выбирайте на вкус https://www.nuget.org/packages?q=Tags%3A%22plotting%22
![]()
Зачем искать какие-то библиотеки, если это легко можно реализовать с помощью стандартных средств WinForms: для построения графиков использовать Chart, а для вычисления выражений — скажем, JavaScript в невидимом WebBrowser. Конечно, можно задействовать средства динамической компиляции и вычислять выражения на C#, но, я думаю, с JavaScript попроще будет.
Данный пример позволяет построить график функции, задаваемой любым JS-выражением:
Если перенастроить WebBrowser на новую версию IE через реестр, можно и прямо в нем графики строить, через HTML5 Canvas.
![]()
Хоть это и не точный ответ на вопрос по поводу библиотек, т.к. сам тоже не нашел.
Есть один запасной для вас вариант:
Создаете функцию которая принимает x и строку фукнции, вида «x^2+2*x-3»
В строке, символ ‘x’ заменяете на значение переменной x что бы вышло что то типа:
Алгоритмом польской нотации считаете выражение, и возвращаете ответ. Примеры и объяснения польской записи хорошо доступны. Создаете массив для отображения графика. И в своем массиве для каждого элемента вызываете функцию, передавая x на промежутке (xmin;xmax), и сам вид функции как string.
Для самих графиков можно использовать Chart в .NET
![]()
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.3.11.43304
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Библиотека Qwt: как построить график функции на плоскости?
![]()
Уже пять лет я не пишу приложения с GUI, потому предложение зав. кафедрой подготовить для его лекции программу, строящую некие графики, поначалу меня несколько расстроило.
Как настоящий программист я решил найти самый легкий (и полезный для саморазвития) путь.
А именно, это задание оказалось хорошим поводом для того, чтобы познакомиться с Qt и библиотекой Qwt. Заодно я узнал, что приложения с GUI, оказываются, могут быть кроссплатформенными, а их код не менее элегантным, чем у приложений с «интерфейсом в стиле Unix™».
Итак, Qwt — библиотека виджетов для программирования приложений, имеющих техническую направленность. Она содержит набор виджетов, представляющих собой всевозможные слайдеры и дисковые «номеронабиратели», виджеты для построение гистограмм. Но здесь я расскажу, как Qwt применить для построения самых обычных двумерных графиков функций вида y = f(x).
- приводится ссылка на исходный код моего простейшего примера (+ исполняемые файлы) и инструкция по его компиляции;
- рассказывается, как же в этом примере всё устроено;
- для новичков описывается компиляция и установка Qwt.
Простейший пример и его компиляция
Для этой заметки я подготовил совсем маленький пример, который можно использовать в качестве стартовой точки при изучении Qwt.
- исходными кодами,
- исполняемым файлом для Windows (собиралось в WinXP Pro SP3 32-bit);
- исполняемым файлом для Linux (собиралось в OpenSUSE 11.2 x86-64).
- qmake
- make release
- mingw32-make release
Пройдемся по исходникам
В Qwt всё просто. Есть виджет «область рисования» — QwtPlot . С ним можно связать несколько кривых — объекты QwtPlotCurve . Собственно, вот и всё.
Описание класса (файл QwtBeginner.h)
В моем примере окно приложения — экземпляр класса QwtBeginner , который является потомком класса QWidget .
Он включает в себя две области рисования QwtPlot : на funPlot будут отображаться графики функций, на derPlot — графики их производных.
Всего будет построено четыре кривых: функция синуса и кубическая функция( sinFunCurve , cubFunCurve ) и их производные ( sinDerCurve , cubDerCurve ).
Включать и отключать отображение соответствующих графиков будут кнопки sinButton и cubButton , к сигналам которых будут привязаны слоты sinToggled() и cubToggled() .
Реализация класса (файл QwtBeginner.cpp)
Обратите внимание, что мы не только должны изменить признак видимости кривых ( setVisible() ), но и перерисовать области рисования ( replot() ).
Функция main() (файл main.cpp)
Для новичков: компиляция и установка Qwt
С официального сайта для скачивания доступны архивы tar.bz2 и zip . На момент написания этой заметки последней версией является 5.2.0.
Итак, скачиваем и распаковываем архив в какую-нибудь временную директорию.
- Закомментирована строчка » CONFIG += QwtDll » (по каким-то причинам в Windows DLL у меня не собирается).
- Строчка » CONFIG += QwtExamples » раскомментирована.
- Прописан другой каталог установки » INSTALLBASE «.
Windows
- qmake qwt.pro
- mingw32-make
- mingw32-make install
Linux
- qmake qwt.pro
- make
- sudo make install
Заключение
Qwt — удобный кроссплатформенный инструмент для построения графиков функций одной переменной. Предоставляет простой интерфейс и избавляет от необходимости заботиться о деталях, типа масштабирования и меток на осях.
Необходимо еще отметить, что подкаталоге examples/ исходной поставки лежит еще 15 примеров, среди которых и examples/simple_plot , послуживший основой для моей программки.
Буду признателен за критику, комментарии и дополнения, так как пока я не являюсь большим специалистом по Qt.
Как построить график функции c
Используем возможности языка C# для разработки программы рисования графиков функций.
Откроем среду программирования C#, выбирая последовательно Пуск -> Все программы -> Microsoft Visual C# 2008 Express Edition.
На начальной странице (Start Page) выберем пункт Create: Project. В результате появится диалоговое окно выбора типа создаваемого проекта.

В качестве типа создаваемого проекта выберем Windows Application, в поле Name: зададим имя проекта (например, DrawFunction) и нажмем кнопку OK.

В результате получаем основу нашего проекта, который нужно доработать, чтобы он мог выполнять требуемые функции.
Щелчком мыши на форме Form1, выберем ее и в окне свойств (Properties) изменим свойство Text, заменив Form1 на «График функции». Изменим также имя формы, по которому к ней можно обращаться из программы, заменив в свойстве (Name) Form1 на frmMain. Необходимо сразу отметить и запомнить, что это два совершенно разных свойства, используемых для различных целей, и никогда их не путать.
Графический интерфейс нашего приложения будет состоять из окна, в котором будет отображаться график функции и кнопки, по щелчку на которой будет рисоваться этот график.
Для формирования графического интерфейса приложения наведем мышку на иконку Toolbox, расположенную слева и сверху от формы, и в появившемся окне элементов графического интерфейса выберем PictureBox, и перенесем его на форму. Для этого нужно щелкнуть левой кнопкой мыши в том месте формы, где должен находиться левый верхний угол элемента и, не отпуская кнопку, перетащить мышь в то место, где должен находиться правый нижний угол элемента, и там отпустить кнопку.
Для появившегоя элемента PictureBox изменим его свойство (Name) с pictureBox1 на graphWind. Кроме того, рекомендуется изменить свойство BorderStyle с None на Fixed3D, а также свойство BackColor на белый (White).

Аналогичным образом разместим на форме кнопку Button, выбрав ее с панели элементов управления Toolbox. Получившаяся форма должна иметь примерно следующий вид.

Основная работа приложения — рисование графика функции, будет выполняться при щелчке на кнопке «Нарисовать график». Чтобы вставить код обработчика соответствующего события, нужно дважды щелкнуть на кнопке и в результате откроется окно кода с требуемым заголовком нужной процедуры.
Вставьте в этот обработчик следующий код.
Для проверки работы программы достаточно нажать клавишу F5. В результате, если все сделано правильно, должно появиться окно приложения. После нажатия кнопки «Нарисовать график» в окне должен появиться график функции.

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