Главная страница

Лабораторная работа 16. Разработка приложений с использованием средств для отображения графической информации в среде Microsoft


Скачать 420.96 Kb.
НазваниеЛабораторная работа 16. Разработка приложений с использованием средств для отображения графической информации в среде Microsoft
Дата10.10.2022
Размер420.96 Kb.
Формат файлаdocx
Имя файлаlab10.docx
ТипЛабораторная работа
#726207
ЛАБОРАТОРНАЯ РАБОТА № 16. Разработка приложений с использованием средств для отображения графической информации в среде Microsoft Visual Studio

1 Цель работы

Изучить возможности построения графиков с помощью компонентов отображения графической информации Сhart и PictureBox. Получить практические навыки в написании и отладке программ построения на экране графика заданной функции.
2 Порядок выполнения работы

Внимательно изучить краткую теорию работы. Выполнить самостоятельно примеры задания из раздела 5. Получить задание на выполнение лабораторной работы (раздел 6) согласно своему варианту. Разработать и отладить программу. Составить и защитить отчет о лабораторной работе у преподавателя.
3 Содержание отчета

  • наименование и цель работы.

  • задание на лабораторную работу согласно варианту.

  • текст программы на алгоритмическом языке.

  • результаты работы программы.


4 Краткая теория

4.1 Построение графика с помощью компонента Chart в Microsoft Visual Studio

Компонент Chart позволяет строить различные графики. Основное свойство компонента – Series, представляет собой коллекцию (специальный двухмерный массив). Так, построение графика (диаграммы) производится после вычисления таблицы значений функции y = f(x) на интервале [Xmin, Xmax] с заданным шагом. Поскольку Series коллекция, то позволяет строить на одном компоненте несколько графиков. По умолчанию серия одна, индекс 0. К серии можно обращаться по индексу, например, 0 или имени, например, Series1.

Компонент Chart имеет различные свойства и методы.
4.2 Моделирование графика с помощью компонента PictureBox в Microsoft Visual Studio

Обычно PictureBox используется для отображения графики из растрового изображения, метафайла, значка, JPEG, GIF-файла или PNG-файла.

Для установки изображения в PictureBox можно использовать ряд свойств:

  • Image: устанавливает объект типа Image;

  • ImageLocation: устанавливает путь к изображению на диске или в интернете;

  • InitialImage: некоторое начальное изображение, которое будет отображаться во время загрузки главного изображения, которое хранится в свойстве Image;

  • ErrorImage: изображение, которое отображается, если основное изображение не удалось загрузить в PictureBox.

Однако, в PictureBoxтакже можно рисовать, в том числе, графики функций.


5 Примеры разработки программ

5.1 Пример разработки графика в Microsoft Visual Studio с использованием компонента Chart

Задание: составить программу, отображающую графики функций sin(x) и cos(x) на интервале [Xmin, Xmax]. Предусмотреть возможность изменения разметки координатных осей, а также шага построения таблицы.

5.1.1 Настройка формы

Панель диалога программы организуется в виде, представленном на рисунке 5.1.



Рисунок 5.1 – Использование компонента TChart
5.1.2 Работа с компонентом Chart

Для изменения параметров (свойств) компонента Chart необходимо вызвать окно его свойств. Выбирая нужные свойства производим настройку. Например, для добавления и настройки графика необходимо открыть коллекцию Series (рисунок 5.2).


Рисунок 5.2 – Окно редактирования коллекции Series
5.1.3 Запись кода обработки событий нажатия на кнопки

Функция Form1_Load задает начальные значения параметров графика и размечает оси.

Функция button1_Click обрабатывает нажатие кнопки «Разместить оси».

Функция button2_Click обрабатывает нажатие кнопки «Построить график».

Для добавления координат точек из таблицы в двумерный массив объекта Seriesk используется функция

AddXY(double xValue, double yValue), где xValue, yValue – координаты точки по осям X и Y.
5.1.4 Текст программы
Проверить наличие пространства имен

using System.Drawing;

using System.Windows.Forms.DataVisualization.Charting;
Объявить переменные глобально:

double Xmin,Xmax,Ymin,Ymax,Hx,Hy,h;
private void Form1_Load(object sender, EventArgs e)

{

Xmin = 0; Xmax = 2 * Math.PI; Ymin = -1; Ymax = 1;

Hx = Math.PI/2; Hy = 0.5;

h = 0.01; // Установка шага расчета таблицы

// Вывод данных в окна однострочных редакторов

textBox1.Text = Convert.ToString(Xmin);

textBox2.Text = Convert.ToString(Xmax);

textBox3.Text = Convert.ToString(Ymin);

textBox4.Text = Convert.ToString(Ymax);

textBox5.Text = Convert.ToString(Hx);

textBox6.Text = Convert.ToString(Hy);

textBox7.Text = Convert.ToString(h);

// Отключение автоматического определения пар-ров оси X

chart1.ChartAreas[0].AxisX.IsLabelAutoFit=false;

// Установка левой границы нижней оси

chart1.ChartAreas[0].AxisX.Minimum=Xmin;

//Установка правой границы нижней оси

chart1.ChartAreas[0].AxisX.Maximum=Xmax;

// Отключение автоматического определения пар-ров оси Y

chart1.ChartAreas[0].AxisY.IsLabelAutoFit=false;

// Установка нижней границы левой оси

chart1.ChartAreas[0].AxisY.Minimum=Ymin;

// Установка верхней границы левой оси

chart1.ChartAreas[0].AxisY.Maximum=Ymax;

// Установка шага разметки по нижней оси

chart1.ChartAreas[0].AxisX.Interval=Hx;

// Установка шага разметки по левой оси

chart1.ChartAreas[0].AxisY.Interval=Hy;

}
private void button1_Click(object sender, EventArgs e)

{

Xmin = Convert.ToDouble(textBox1.Text);

Xmax = Convert.ToDouble(textBox2.Text);

Ymin = Convert.ToDouble(textBox3.Text);

Ymax = Convert.ToDouble(textBox4.Text);

Hx = Convert.ToDouble(textBox5.Text);

Hy = Convert.ToDouble(textBox6.Text);

h= Convert.ToDouble(textBox7.Text);

// Установка левой границы нижней оси

chart1.ChartAreas[0].AxisX.Minimum=Xmin;

//Установка правой границы нижней оси

chart1.ChartAreas[0].AxisX.Maximum=Xmax;

// Установка нижней границы левой оси

chart1.ChartAreas[0].AxisY.Minimum=Ymin;

// Установка верхней границы левой оси

chart1.ChartAreas[0].AxisY.Maximum=Ymax;

// Установка шага разметки по нижней оси

chart1.ChartAreas[0].AxisX.Interval=Hx;

// Установка шага разметки по левой оси

chart1.ChartAreas[0].AxisY.Interval=Hy;
}
private void button2_Click(object sender, EventArgs e)

{

chart1.Series[0].Points.Clear();//очистка графиков

chart1.Series[1].Points.Clear();//очистка графиков

double x,y1,y2;

x = Xmin; //начальное значение по Х

while (x <= Xmax)

{

y1 = sin(x);//расчет функции

//вывод точки на график

chart1.Series[0].Points.AddXY(x,y1);

y2 = cos(x);//расчет функции

//вывод точки на график chart1.Series[1].Points.AddXY(x,y2);

//увеличение значения Х на величину шага

x += h;

}

/*или через for

for (x = Xmin; x

{

y1 = sin(x);//расчет функции

chart1.Series[0].Points.AddXY(x,y1);

y2 = cos(x);//расчет функции

chart1.Series[1].Points.AddXY(x,y2);

}

*/

}
5.2 Пример разработки графика в Microsoft Visual Studio с использованием компонента pictureBox

Задание: составить программу, моделирующую график функции sin(x)

5.2.1 Настройка формы

Панель диалога программы организуется в виде, представленном на рисунке 5.3.


Рисунок 5.3 – Использование компонента pictureBox
5.2.2 Текст программы
private void button1_Click(object sender, EventArgs e)

{

// Объявляем объект "g" класса Graphics и предоставляем

// ему возможность рисования на pictureBox1:

Graphics g = pictureBox1.CreateGraphics();

int cx = pictureBox1.Width;

int cy = pictureBox1.Height / 2;

PointF[] ptf = new PointF[cx];

// число волн

int cw = Convert.ToInt32(textBox1.Text);

// Очистим PictureBox

g.Clear(pictureBox1.BackColor);

for (int i = 0; i < cx; i++)

{

ptf[i].X = i; ptf[i].Y = (float)((cy / 2) * (1 - Math.Sin(i * cw * Math.PI / (cx - 1))));

}

g.DrawLines(Pens.Red, ptf);

//очистка

g.Dispose();

}
6 Задания для самостоятельной работы

Задание 1

Постройте графики функций с использованием компонента chart для соответствующих вариантов. Таблицу данных получить, изменяя параметр X с шагом h. Ввод исходных данных организовать через компоненты. Самостоятельно выбрать удобные параметры настройки. Обязательно реализовать проверку правильности ввода исходных данных: левая граница по оси х меньше правой, заполнены все поля перед выводом графика, причем проверить ввод именно числовых данных в поля. Проверку организовать, в том числе, с использованием технологии обработки исключительных ситуаций.
Задание 2

Смоделируйте график функции согласно варианту с использованием компонента pictureBox. Если необходимо, то измените в исходных данных варианта, например, шаг, диапазон аргумента и т. д. Задайте нужный цвет, толщину линии, размер формы.








написать администратору сайта