Штриховые линии и завершения отрезков

Объект Pen также разрешает изменять значения некоторых своих свойств, таких как DashStyle, что позволяет задавать характеристики линии. В приведенном ниже примере демонстрируется рисование отрезка штриховой линии из точки с координатами (100, 50) в точку с координатами (300, 80).

C#

myPen.DashStyle = DashStyle.Dash;

myGraphics.DrawLine(myPen, 100, 50, 300, 80);

Изменяя значения свойств объекта Pen, можно задать многие атрибуты линии. Свойства StartCap и EndCap определяют вид конечных точек отрезка. Конец отрезка может быть плоским, квадратным, круглым, треугольным или иметь произвольную форму. Свойство LineJoin позволяет указывать, должны ли соединяемые линии соединяться под углом (с выступающими острыми углами), со скошенными, закругленными или обрезанными краями. На приведенном ниже примере демонстрируются различные стили завершения и соединения линий.

Штриховые линии и завершения отрезков - student2.ru

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

Рисование прямоугольников в GDI+ похоже на рисование линий. Чтобы нарисовать прямоугольник, нужно создать два объекта: объект Graphics и объектPen. У объекта Graphics имеется метод DrawRectangle, а объект Pen предназначен для хранения таких атрибутов рисуемого элемента, как ширина линии и цвет. Объект Pen передается методу DrawRectangle в качестве одного из аргументов. В приведенном ниже примере демонстрируется рисование прямоугольника шириной 80 и высотой 40 точек, верхний левый угол которого расположен в точке с координатами (100, 50).

C#

myGraphics.DrawRectangle(myPen, 100, 50, 80, 40);

Метод DrawRectangle класса Graphics перегружен, поэтому для него поддерживается несколько способов передачи аргументов. Например, можно создать объект Rectangle и передать этот объект Rectangle в качестве аргумента методу DrawRectangle:

C#

Rectangle myRectangle = new Rectangle(100, 50, 80, 40);

myGraphics.DrawRectangle(myPen, myRectangle);

Объект Rectangle содержит методы и свойства, позволяющие задавать и извлекать данные о прямоугольнике. Например, методы Inflate и Offsetпозволяют изменять размер и расположение прямоугольника. Метод IntersectsWith позволяет определить, не пересекается ли данный прямоугольник с некоторым указанным прямоугольником, а метод Contains позволяет определить, находится ли указанная точка внутри данного прямоугольника.

Graphics.Clear – метод. Очищает всю поверхность рисования и выполняет заливку поверхности указанным цветом фона.

C#

public void Clear( Color color)

Метод Clear очищает состояние графического объекта и не должен вызываться в том случае, когда графический объект не может быть изменен.Например, если метод Clear вызывается на безопасном рабочем столе сессии терминального сервера, может возникнуть исключение ExternalException, и объект Graphics останется в некорректном состоянии.

Примеры

Следующий пример кода предназначен для использования с Windows Forms, и для него требуется объект PaintEventArgs e, являющийся параметром обработчика событий Paint. Данный код очищает поверхность рисования объекта Graphics и задает в качестве цвета фона определенный системой бирюзовый цвет.

C#

private void ClearColor(PaintEventArgs e){ // Clear screen with teal background. e.Graphics.Clear(Color.Teal);}

Graphics.DrawLine - метод (Pen, Point, Point)

Проводит линию, соединяющую две структуры Point.

C#

public void DrawLine( Pen pen, Point pt1, Point pt2)

Параметры

pen

Тип: System.Drawing.Pen
Структура Pen, определяющая цвет, ширину и стиль линии.

pt1

Тип: System.Drawing.Point
Структура Point, представляющая первую точка для соединения.

pt2

Тип: System.Drawing.Point
Структура Point, представляющая вторую точка для соединения.

Примеры

Следующий пример кода предназначен для использования с Windows Forms, и для него требуется объект PaintEventArgs e, являющийся параметром обработчика событий Paint. Код выполняет следующие действия:

· Создает черное перо.

· Создает конечные точки линии.

· Рисует на экране линию.

C#

public void DrawLinePoint(PaintEventArgs e){ // Create pen. Pen blackPen = new Pen(Color.Black, 3); // Create points that define line. Point point1 = new Point(100, 100); Point point2 = new Point(500, 100); // Draw line to screen. e.Graphics.DrawLine(blackPen, point1, point2);}

Наши рекомендации