Как построить график функции c
Перейти к содержимому

Как построить график функции c

  • автор:

Лабораторная работа №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) и на какой-нибудь канвас выводит синусоиду.

Андрей NOP's user avatar

Andrey Yurevich's user avatar

Все-таки здесь два этапа:

Рассчитать координаты точек на графике. Для этого есть mXparser http://mathparser.org/

Построить сам график из этих точек. Здесь миллион вариантов, выбирайте на вкус https://www.nuget.org/packages?q=Tags%3A%22plotting%22

Sergey Kovalev's user avatar

Зачем искать какие-то библиотеки, если это легко можно реализовать с помощью стандартных средств WinForms: для построения графиков использовать Chart, а для вычисления выражений — скажем, JavaScript в невидимом WebBrowser. Конечно, можно задействовать средства динамической компиляции и вычислять выражения на C#, но, я думаю, с JavaScript попроще будет.

Данный пример позволяет построить график функции, задаваемой любым JS-выражением:

Если перенастроить WebBrowser на новую версию IE через реестр, можно и прямо в нем графики строить, через HTML5 Canvas.

MSDN.WhiteKnight's user avatar

Хоть это и не точный ответ на вопрос по поводу библиотек, т.к. сам тоже не нашел.
Есть один запасной для вас вариант:
Создаете функцию которая принимает x и строку фукнции, вида «x^2+2*x-3»
В строке, символ ‘x’ заменяете на значение переменной x что бы вышло что то типа:

Алгоритмом польской нотации считаете выражение, и возвращаете ответ. Примеры и объяснения польской записи хорошо доступны. Создаете массив для отображения графика. И в своем массиве для каждого элемента вызываете функцию, передавая x на промежутке (xmin;xmax), и сам вид функции как string.

Для самих графиков можно использовать Chart в .NET

BogdanBida's user avatar

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.3.11.43304

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Библиотека Qwt: как построить график функции на плоскости?

Скриншот простейшей программы, демонстрирующей использование виджетов 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#. Определите, что можно и нужно добавить в данное приложение, чтобы оно стало более удобным и более функциональным, и постарайтесь самостоятельно реализовать такие возможности.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *