Решение. Сохраните текущее состояние проекта

Сохраните текущее состояние проекта. Создайте в том же решении новый проект, назовите его Ex5. Назначьте его запускаемым проектом.

Измените свойство Text формы на «Отрезки».

Графические операции выполняются с использованием класса Graphics. Класс Graphics предоставляет возможности для рисования (перо, кисть, шрифт, набор типовых геометрических фигур).

Чтобы создать экземпляр класса Graphics, нужно описать переменную:

Graphics Graph;

а затем инициализировать её:

Graph = CreateGraphics();

После этого можно использовать возможности класса Graphics.

Например, чтобы нарисовать на форме пунктирную линию красного цвета от точки с координатами (25, 25) до точки (250, 250), необходимы следующие операторы:

Pen MyPen = new Pen(Color.Red, 2);

float[] dashValues = {5, 4};

MyPen.DashPattern = dashValues;

Graph.DrawLine(MyPen, 25, 25, 250, 250);

MyPen.Dispose();

Graph.Dispose();

Поясним код. Первый оператор создает экземпляр класса Pen – перо. Указанные в скобках параметры определяют цвет пера и его толщину. Если второй параметр не указывать явно, по умолчанию он будет равен 1. Мы определили перо с именем MyPen, красного цвета, толщиной 2 пикселя.

Второй и третий операторы отвечают за пунктирный стиль кисти. Массив dashValues указывает, что пунктир будет таким: линия длиной
5 пикселей, пропуск между пикселями длиной 4 пикселя. Третий оператор устанавливает пунктирный стиль в соответствии с созданным массивом dashValues.

В четвертой строке кода используется метод DrawLine () – рисование отрезка. Его пять параметров определяют используемое для рисования перо и координаты начала и конца отрезка соответственно.

Метод Dispose () освобождает все ресурсы, используемые объектом.

По условию задачи нам нужно рисовать отрезки. Отрезок – это часть прямой, расположенная между двумя точками. Пусть событие нажатие кнопки мыши послужит началом рисования отрезка (сохраним координаты этой точки), освобождение кнопки мыши – завершением рисования отрезка (нарисуем линию от сохраненной точки до точки, на которую указывает курсор).

Необходимо описать переменные Graph (тип Graphics), MyPen (тип Pen), x и y (тип int – целые числа). Если сделать это непосредственно в обработчике MouseDown, то эти переменные будут недоступны в обработчике MouseUp. Поэтому опишем все переменные в классе Form1.

public partial class Form1: Form

{

int x, y;

Graphics Graph;

Pen MyPen;

В конструкторе формы допишите следующие операторы:

Graph = CreateGraphics();

MyPen = new Pen(Color.Blue);

Создайте обработчик события MouseDown:

private void Form1_MouseDown(object sender, MouseEventArgs e)

{

x = e.X;

y = e.Y;

}

Создайте обработчик события MouseUp:

private void Form1_MouseUp(object sender, MouseEventArgs e)

{

Graph.DrawLine(MyPen, x, y, e.X, e.Y);

}

Создайте обработчик события FormClosing (происходит при закрытии формы; здесь удобно освобождать занятые ресурсы):

private void Form1_FormClosing

(object sender, FormClosingEventArgs e)

{

MyPen.Dispose();

Graph.Dispose();

}

Запустите приложение. Попробуйте с помощью приложения нарисовать звезду.

Упражнение 3.6. Создайте приложение, позволяющее изображать произвольные линии.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: