Практическое задание №1.58: "Графики функций"
Справочная информация
WPF — https://metanit.com/sharp/wpf/
OxyPlot — https://oxyplot.github.io/
Графики функций — важный инструмент визуализации данных и математических зависимостей. В WPF построение графиков можно реализовать как вручную (через Canvas), так и с использованием библиотек визуализации (например, OxyPlot).
В рамках задания студент изучает:
• работу с одномерными массивами;
• построение графиков по вычисленным значениям;
• взаимодействие пользовательского интерфейса с математической логикой;
• отображение нескольких функций одновременно;
• обработку ошибок и некорректного ввода.
Формулы для работы координат с Canvas (необходимы для правильного расположения графика)
• canvasX = (xMath - xStart) / (xEnd - xStart)
• canvas = canvasHeight / 2 – yMath * 50
Задание
Создать WPF приложение «FunctionGrapherPro», демонстрирующее построение графиков нескольких математических функций на одном поле.
Приложение должно позволять:
• вводить диапазон значений X (начало, конец, шаг);
• выбирать одну или несколько функций для построения;
• вычислять значения функций и отображать их на графике;
• выводить таблицу значений;
• очищать график;
Функции для построения:
1. y=sin(x)
2. y=cos(x)
3. y=x2
4. y=ex
Базовые объекты
Класс FunctionDataUnit
Поля:
• XValues — массив значений X;
• YValues — массив значений Y;
• FunctionName — название функции;
Методы:
• ToString() — выводит информацию о функции и количестве точек.
Класс FunctionCalculatorUnit
Методы:
• CalculateSin() — вычисляет массив значений sin(x);
• CalculateCos() — вычисляет массив значений cos(x);
• CalculateSquare() — вычисляет массив значений x^2;
• CalculateExp() — вычисляет массив значений e^x;
• методы должны возвращать объект FunctionDataUnit.
Интерфейс окна FunctionGrapherWindow
Элементы:
• TextBox — ввод начала диапазона X;
• TextBox — ввод конца диапазона X;
• TextBox — ввод шага;
• CheckBox — выбор функций (sin, cos, x², eˣ);
• Button — построить график;
• Button — очистить график;
• PlotView или Canvas — область графика;
• ListView — таблица значений X и Y;
• TextBlock — вывод информации о количестве точек.
Логика работы программы
1. Пользователь вводит диапазон X и шаг.
2. Программа преобразует ввод в массив значений X.
3. Пользователь выбирает функции для построения.
4. Программа вычисляет значения Y для каждой выбранной функции.
5. На графике отображаются кривые разных цветов.
6. В таблицу выводятся значения X и Y для последней построенной функции.
7. При нажатии «Очистить» график и таблица очищаются.
Результат
Программа должна демонстрировать:
• работу с одномерными массивами;
• вычисление значений математических функций;
• построение графиков в WPF;
• отображение таблицы значений;
• взаимодействие интерфейса и вычислительной логики.
Пользователь должен иметь возможность:
• вводить диапазон X;
• выбирать функции;
• строить графики;
• просматривать таблицу значений;
• очищать график.