Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема Графика в C#.doc
Скачиваний:
11
Добавлен:
03.05.2019
Размер:
3.65 Mб
Скачать

Рисование прямоугольника(DrawRectangle )

Метод DrawRectangle позволяет рисовать прямоугольники, заданные координатой верхнего левого угла, а также шириной и высотой. В библиотеке классов .NET Frameworks имеется три перегруженных варианта этого метода см. слайд.

public void DrawRectangle(Pen, Rectangle); public void DrawRectangle(Pen, int, int, int, int); public void DrawRectangle(Pen, float, float, float, float);

В качестве первого параметра этим методам передается уже известное нам перо класса Pen. Остальные параметры задают расположение и размеры прямоугольника.

Класс Rectangle используется для описания расположения и размеров прямоугольной области. Интересующая нас сигнатура конструктора имеет вид.

Rectangle(X,Y, Width, Height)

Свойства X и Y этого класса задают координаты верхнего левого угла прямоугольной области, соответственно, по горизонтальной и вертикальной оси координат. Свойства Width и Height, хранят ширину и высоту прямоугольной области.

Варианты метода DrawRectangle с пятью параметрами позволяют задавать расположение и размеры прямоугольника в виде целых чисел, а также в виде числе с плавающей десятичной точкой. Второй и третий параметр задает расположение верхнего левого угла по горизонтальной и вертикальной оси координат, соответственно, а четвертый и пятый — ширину и высоту прямоугольника.

Проверим работу первых двух методов на примере см. слайд (рис.)

Рис. Задание на метод DrawRectangle

Для решения задачи необходимо создать инструмент для рисования.

Pen myPen = new Pen(Brushes.Blue, 2);

В данном случае это перо синего цвета толщиной в 2 пикселя и объект класса Rectangle.

Rectangle myRectangle = new Rectangle(10,10, 200,200);

Далее применим описанные выше методы.

g.DrawRectangle(myPen, myRectangle);

g.DrawRectangle(myPen, 20,20, 180, 180);

Полный текст обработчика события Form1_Paint приведен ниже см. слайд.

private void Form1_Paint(object sender, PaintEventArgs e)

{

Graphics g = e.Graphics;

Pen myPen = new Pen(Brushes.Blue, 2);

g.Clear(Color.White);

Rectangle myRectangle = new Rectangle(10,10, 200,200);

g.DrawRectangle(myPen, myRectangle);

g.DrawRectangle(myPen, 20,20, 180, 180);

}

Набор прямоугольников (DrawRectangles )

Если возникает необходимость нарисовать сразу несколько прямоугольников целесообразно использовать метод DrawRectangles. Существует два перегруженных варианта этого метода:

public void DrawRectangles(Pen, Rectangle[]); public void DrawRectangles(Pen, RectangleF[]);

Первый из этих методов получает в качестве второго параметра ссылку на массив объектов класса Rectangle, описывающих размеры и расположение прямоугольных областей. Второй метод использует для этого объекты класса RectangleF. Их различие состоит в том, что свойства X, Y, Width и Height второго задают расположение и размеры прямоугольника в виде чисел с плавающей десятичной точкой.

Для демонстрации работы метода решим задачу из предыдущего пункта.

Для этого в классе Form1 приложения определим перо myPen и массив прямоугольников myRects:

Rectangle[] myRects =

{

new Rectangle(10, 10, 200, 200),

new Rectangle(20, 20, 180, 180),

};

Далее вызываем метод DrawRectangles аргументами которого будут перо myPen и массив прямоугольников myRects.

g.DrawRectangles(myPen, myRects);

Полностью код обработчика события Form1_Paint имеет вид.

private void Form1_Paint(object sender, PaintEventArgs e)

{

Graphics g = e.Graphics;

g.Clear(Color.White);

Pen myPen = new Pen(Color.Blue, 2);

Rectangle[] myRects =

{

new Rectangle(10, 10, 200, 200),

new Rectangle(20, 20, 180, 180),

};

g.DrawRectangles(myPen, myRects);

}

Результат работы программы приведен на рис.

Рис. Результат работы программы с методом DrawRectangles.