Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Лабораторная работа 8. Программирование с использованием средств для отображения графической информации
Цель лабораторной работы: изучить возможности построения графиков с помощью компонента отображения графической информации Сhart. Написать и отладить программу построения на экране графика заданной функции. Как строится график с помощью компонента Chart Обычно результаты расчетов представляются в виде графиков и диаграмм. Библиотека.NET Framework имеет мощный элемент управления Chart для отображения на экране графической информации (рис. 8.1).
Рис 8.1. Окно программы с элементом управления.
Построение графика (диаграммы) производится после вычисления таблицы значений функции y=f(x) на интервале [Xmin, Xmax] с заданным шагом. Полученная таблица передается в специальный массив Points объекта Series компонента Сhart с помощью метода DataBindXY. Компонент Chart осуществляет всю работу по отображению графиков: строит и размечает оси, рисует координатную сетку, подписывает название осей и самого графика, отображает переданную таблицу в виде всевозможных графиков или диаграмм. При необходимости компоненту Сhart передаются данные о толщине, стиле и цвете линий, параметрах шрифта подписей, шагах разметки координатной сетки и другие настройки. В процессе работы программы изменение параметров возможно через обращение к соответствующим свойствам компонента Chart. Так, например, свойство AxisX содержит значение максимального предела нижней оси графика и при его изменении во время работы программы автоматически изменяется изображение графика. Пример написания программы Задание: составить программу, отображающую графики функций sin(x) и cos(x) на интервале [Xmin, Xmax]. Предусмотреть возможность изменения разметки координатных осей, а также шага построения таблицы. Прежде всего, следует определить в коде класса все необходимые переменные и константы. Конечно, можно обойтись и без этого, вставляя значения в виде чисел прямо в формулы, но это, во-первых, снизит читабельность кода программы, а во вторых, значительно усложнит изменение каких-либо параметров программы, например, интервала построения графика.
/// <summary> /// Левая граница графика /// </summary> private double XMin = -Math.PI;
/// <summary> /// Правая граница графика /// </summary> private double XMax = Math.PI;
/// <summary> /// Шаг графика
/// </summary> private double Step = (Math.PI * 2) / 10;
// Массив значений X - общий для обоих графиков private double[] x;
// Два массива Y - по одному для каждого графика private double[] y1; private double[] y2;
Также в коде класса следует описать глобальную переменную типа Chart, к которой мы будем обращаться из разных методов:
Chart chart;
Поскольку данный класс не входит в пространства имен, подключаемые по умолчанию, следует выполнить дополнительные действия. Во-первых, в Обозревателе решений нужно щёлкнуть правой кнопкой по секции Ссылки и добавить ссылку на библиотеку визуализации (рис. 8.2):
Рис. 8.2. Добавление ссылки на библиотеку визуализации.
Кроме того, следует подключить соответствующее пространство имен:
using System.Windows.Forms.DataVisualization.Charting;
Далее следует определить метод, который будет расчитывать количество шагов и вычислять значения функций в каждой точке, внося вычисленные значения в массивы x, y1 и y2:
/// <summary> /// Расчёт значений графика /// </summary> private void CalcFunction() { // Количество точек графика int count = (int)Math.Ceiling((XMax - XMin) / Step) + 1; // Создаём массивы нужных размеров x = new double[count]; y1 = new double[count]; y2 = new double[count]; // Расчитываем точки для графиков функции for (int i = 0; i < count; i++) { // Вычисляем значение X x[i] = XMin + Step * i; // Вычисляем значение функций в точке X y1[i] = Math.Sin(x[i]); y2[i] = Math.Cos(x[i]); } }
После расчёта значений нужно отобразить графики на форме с помощью элемента Chart. Элемент управления Chart нельзя выбрать с помощью панели элементов – его нужно создавать прямо в коде программы. Вторым шагом следует созать область отображения графика и настроить внешний вид осей:
/// <summary> /// Создаём элемент управления Chart и настраиваем его /// </summary> private void CreateChart() { // Создаём новый элемент управления Chart chart = new Chart(); // Помещаем его на форму chart.Parent = this; // Задаём размеры элемента chart.SetBounds(10, 10, ClientSize.Width - 20, ClientSize.Height - 20);
// Создаём новую область для построения графика ChartArea area = new ChartArea(); // Даём ей имя (чтобы потом добавлять графики) area.Name = "myGraph"; // Задаём левую и правую границы оси X area.AxisX.Minimum = XMin; area.AxisX.Maximum = XMax; // Определяем шаг сетки area.AxisX.MajorGrid.Interval = Step;
// Добавляем область в диаграмму chart.ChartAreas.Add(area);
// Создаём объект для первого графика Series series1 = new Series(); // Ссылаемся на область для построения графика series1.ChartArea = "myGraph"; // Задаём тип графика - сплайны series1.ChartType = SeriesChartType.Spline; // Указываем ширину линии графика series1.BorderWidth = 3; // Название графика для отображения в легенде series1.LegendText = "sin(x)"; // Добавляем в список графиков диаграммы chart.Series.Add(series1); // Аналогичные действия для второго графика Series series2 = new Series(); series2.ChartArea = "myGraph"; series2.ChartType = SeriesChartType.Spline; series2.BorderWidth = 3; series2.LegendText = "cos(x)"; chart.Series.Add(series2);
// Создаём легенду, которая будет показывать названия Legend legend = new Legend(); chart.Legends.Add(legend); }
Наконец, все эти методы следует откуда-то вызвать. Чтобы графики появлялись сразу после запуска программы, надо вызывать их в обработчике события Load формы:
private void Form1_Load(object sender, EventArgs e) { // Создаём элемент управления CreateChart();
// Расчитываем значения точек графиков функций CalcFunction();
// Добавляем вычисленные значения в графики chart.Series[0].Points.DataBindXY(x, y1); chart.Series[1].Points.DataBindXY(x, y2); }
8.3. Выполнение индивидуального задания Постройте графики функций для соответствующих вариантов из лабораторной работы №2. Таблицу данных получить путём изменения параметра X с шагом h. Самостоятельно выбрать удобные параметры настройки.
|
||||||
Последнее изменение этой страницы: 2017-02-07; просмотров: 1185; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.224.95.38 (0.011 с.) |