Загрузка данных


Практическое задание
Тема: Работа с объектами Graphics, Pen, Brush и Font в Windows Forms.
Цель: Получить практические навыки получения объекта Graphics, создания перьев (Pen) и кистей (Brush), использования методов для отрисовки геометрических фигур и вывода текста в заданной системе координат.

Теоретическая справка
Для выполнения задания необходимо использовать следующие основные классы и принципы:
1.Получение объекта Graphics
В обработчике события Paint элемента управления (например, PictureBox) объект Graphics передается через свойство e.Graphics аргумента PaintEventArgs. Это стандартный способ организации рисования на поверхности элемента.
csharp
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
    Graphics g = e.Graphics;
    // последующие команды рисования
}
2.Класс Pen (перо)
Используется для рисования линий и контуров фигур. Создается с указанием цвета и, опционально, толщины.
csharp
Pen myPen = new Pen(Color.Blue, 3); // синее перо толщиной 3 пикселя
3.Класс Brush (кисть)
Используется для заливки замкнутых областей.
oSolidBrush – сплошная заливка.
oHatchBrush – штриховая заливка.
csharp
SolidBrush solidBrush = new SolidBrush(Color.Yellow);
HatchBrush hatchBrush = new HatchBrush(HatchStyle.Cross, Color.Red, Color.White);
4.Класс Font (шрифт)
Определяет начертание, размер и стиль шрифта для вывода текста.
csharp
Font myFont = new Font("Arial", 14, FontStyle.Bold);
5.Класс ColorDialog
Стандартный диалог выбора цвета. Позволяет пользователю выбрать цвет через графический интерфейс.
csharp
ColorDialog colorDialog = new ColorDialog();
if (colorDialog.ShowDialog() == DialogResult.OK)
{
    Color selectedColor = colorDialog.Color;
}
6.Методы рисования класса Graphics
oDrawLine(Pen, Point, Point) – рисует линию.
oDrawRectangle(Pen, Rectangle) – рисует контур прямоугольника.
oFillRectangle(Brush, Rectangle) – рисует закрашенный прямоугольник.
oDrawEllipse(Pen, Rectangle) – рисует контур эллипса.
oFillEllipse(Brush, Rectangle) – рисует закрашенный эллипс.
oDrawString(String, Font, Brush, Point) – выводит текст.
oDrawPolygon(Pen, Point[]) – рисует контур многоугольника.
oFillPolygon(Brush, Point[]) – рисует закрашенный многоугольник.

Постановка задачи
Создайте приложение Windows Forms. Используйте конструктор форм для размещения элементов управления. Реализуйте следующий функционал:
1. Разработка интерфейса
С помощью конструктора форм разместите на форме следующие элементы:
Элемент PictureBox – выполняет роль холста для рисования.
Задайте ему свойство BackColor = White и желаемый размер (например, 600 × 400).
Три кнопки с текстами:
«Треугольник», «Квадрат», «Круг».
Три кнопки выбора цвета (по одной для каждой дополнительной фигуры):
«Цвет треугольника», «Цвет квадрата», «Цвет круга».
Кнопку «Очистить» для удаления дополнительных фигур.
2. Реализация основной композиции
Вся логика рисования основной композиции должна быть реализована в обработчике события Paint элемента PictureBox. Основная композиция отображается всегда и состоит из следующих элементов:
Два прямоугольника:
oодин только с контуром (метод DrawRectangle),
oодин закрашенный сплошной кистью (метод FillRectangle).
Одна линия, соединяющая две произвольные точки (метод DrawLine).
Один эллипс, закрашенный штриховой кистью HatchBrush (метод FillEllipse). Цвета штриховки выбрать произвольно.
Текстовая строка с произвольным содержанием, выведенная с использованием заданного шрифта и цвета (метод DrawString).
Примечание: координаты, размеры и цвета фигур (кроме эллипса с штриховкой) студент выбирает самостоятельно. Фигуры не должны накладываться друг на друга и должны быть видны на белом фоне.
3. Реализация дополнительных фигур с выбором цвета
3.1. Хранение данных
Для хранения состояния приложения создайте следующие переменные:
csharp
private string currentShape = "";        // "triangle", "square", "circle"
private Color triangleColor = Color.Green;
private Color squareColor = Color.Orange;
private Color circleColor = Color.Purple;
3.2. Отрисовка дополнительных фигур
В обработчике события Paint элемента PictureBox после отрисовки основной композиции добавьте отрисовку дополнительной фигуры с использованием выбранного цвета:
Треугольник – закрашенный треугольник (метод FillPolygon) с использованием triangleColor.
Квадрат – закрашенный квадрат (метод FillRectangle) с использованием squareColor.
Круг – закрашенный круг (метод FillEllipse) с использованием circleColor.
3.3. Выбор цвета
При нажатии на кнопку «Цвет треугольника» должен открываться диалог выбора цвета (ColorDialog). После выбора цвета переменная triangleColor обновляется, и вызывается перерисовка PictureBox.
Аналогично реализовать для квадрата и круга.
3.4. Отображение фигур
При нажатии на кнопку «Треугольник» устанавливается значение currentShape = "triangle" и вызывается pictureBox1.Invalidate().
Аналогично для кнопок «Квадрат» и «Круг».
3.5. Очистка
При нажатии на кнопку «Очистить» устанавливается currentShape = "" и вызывается pictureBox1.Invalidate().