double arrow

Кисти и перья

Представление цвета

Представление цвета осуществляется с помощью экземпляров структуры System.Drawing.Color. Для задания цвета используется статический метод класса:

public static Color.FromArgb(int red, int green, int blue);

Параметры метода red, green и blue задают интенсивность красной, зеленой и синей составляющей цвета. Значение каждой компоненты цвета может изменяться в диапазоне от 0 до 255. Это позволяет отобразить 224 различных цветов.

Например:

Color crR = Color.FromArgb(255,0,0); // переменная crR − красный цвет

Color crG = Color.FromArgb(0,255, 0); // переменная crG − зеленый цвет

Color crB = Color.FromArgb(0,0,255); // переменная crB − синий цвет

Для задания цвета можно также использовать один из перегруженных методов FromArgb:

public static Color FromArgb(int alpha, Color cr);

public static Color FromArgb(int alpha, int red, int green, int blue);

Дополнительный параметр alpha задает степень прозрачности цвета. Чем меньше это число, тем меньше насыщенность цвета и тем более прозрачным является этот цвет. Значение параметра alpha может изменяться в диапазоне от 0 до 255. Значение 0 определяет полностью прозрачный (бесцветный), а значение 255 − полностью насыщенный (непрозрачный) цвет.

Структура Color содержит более 200 статических свойств, доступных только для чтения. Эти свойства задают именованные или, так называемые, Интернет − цвета, которые правильно воспроизводятся всеми WEB браузерами.

Пример:

Color clr2 = Color.Beige; // бежевый

Color clr3 = Color.Magenta; // сиреневый

Color clr4 = Color.Orange; // оранжевый

Color clr2 = Color.Crimson; // малиновый

Графические объекты рисуются с помощью перьев и кистей.

Кисти описываются объектами классов, производных от класса System.Drawing.Brush. Класс Brush является абстрактным классом, то есть нельзя создать объект этого класса. Сплошные кисти создаются как экземпляры класса System.Drawing.SolidBrush, например:

Brush br2 = new SolidBrush(Color.Magenta);

Brush br3 = new SolidBrush(Color.FromArgb(200,10,120));

Параметр color конструктора:

public SolidBrush(Color color);

класса SolidBrush задает цвет сплошной кисти.

В классе System.Drawing.Brushes определено большое количество статических свойств, возвращающих кисть Интернет цветов. Создание таких кистей выглядит следующим образом:

Brush brr = Brushes.Orange;

В классе System.Drawing.Drawing2D. HatchBrush определены штриховые кисти.

Конструкторы класса:

public HatchBrush(HatchStyle hatchstyle, Color foreColor, Color backColor);

public HatchBrush(HatchStyle hatchstyle, Color foreColor);

Параметры:

foreColor − цвет штриха кисти;

backColor − цвет фонового штриха кисти (по умолчанию − черный цвет);

hatchstyle − стиль штриховой кисти.

Существует большое количество доступных стилей, наиболее типичными являются:

Cross − решетчатая кисть;

DiagonalCross − диагональная решетчатая кисть;

Horizontal − горизонтальная штриховка;

Vertical − вертикальная штриховка.

Например, создание кисти с вертикальной штриховкой синего цвета и фоновым штрихом бежевого цвета будет выглядеть следующим образом:

Brush br1 = new HatchBrush(HatchStyle.Vertical,Color.Blue,Color.Beige);

Перья описываются классом System.Drawing.Pen.

Конструкторы класса:

public Pen(Color color);

public Pen(Color color, float width);

public Pen(Brush brush);

public Pen(Brush brush, float width);

Параметры:

color − цвет пера;

width − толщина пера;

brush −кисть.

Примеры создания перьев:

Pen pn = new Pen(Color. Magenta);

Pen pn1 = new Pen(Color.Orange,5);

Pen pn2 = new Pen(Brushes.Orange);

Pen pn3 = new Pen(Brushes.Magenta,10);

Pen pn4 = new Pen(Color.FromArgb(125,155, 0));

Pen pn5 = new Pen(Color.FromArgb(25,155,200),10);

В классе System.Drawing.Pens содержится множество статических свойств, описывающих перья с интернет цветом и толщиной в один пиксель. Создание таких перьев выглядит следующим образом:

Pen pn6 = Pens.Brown;

Pen pn7 = Pens.Magenta;

Вопросы:

1. Какой метод используется для «смещения» координат точки, прямоугольника?

2. Как определить находится ли точка или прямоугольник внутри другого прямоугольника?

3. С помощью какого метода можно найти пересечение прямоугольников?

4. С помощью какого метода можно найти минимальный по размеру прямоугольник, включающий в себя два прямоугольника?

5. С помощью экземпляров, какой структуры задается цвет?

6. Как создаются сплошные кисти, штриховые кисти?

7. Как создаются сплошные перья, штриховые перья?

8. Что означает Интернет цвет, Интернет кисть, Интернет перо?


Интерфейс графического устройства− GDI+

Панель инструментов IDE предлагает множество элементов управления, c с помощью которых можно организовать сложный интерфейс приложения с пользователем.

Рисование на поверхности формы, при необходимости вывести графическую или текстовую информацию, которую невозможно реализовать с помощью стартового набора элементов управления, выполняется с помощью интерфейса графических устройств – graphics device interface (GDI). Интерфейс GDI обеспечивает аппаратную независимость формирования графических изображений, т.е. скрывает от пользователя вопросы, связанные с аппаратной реализацией графических устройств. Интерфейс GDI – представляет собой набор API функций Windows, реализованных на языке С.

Разработчики среды.NET - предлагают новый интерфейс графического устройства - GDI+. GDI+ - представляет по сути дела объектно-ориентированную оболочку GDI с новыми свойствами и при этом, если верить заявлению компании Microsoft, удалось повысить быстродействие системы.

В GDI определен, так называемый контекст устройства (Device Context).

Контекст устройства обеспечивает с одной стороны управление аппаратурой графических устройств через соответствующее драйвер устройства, с другой стороны, обеспечивает эффективное взаимодействие с ОС Windows, все графические возможности и рисование осуществляются через него.

В GDI+ контекст устройства "завернут" в класс Graphies.


Рисование линий и фигур

Практически все операции рисования осуществляются с помощью вызовов методов класса.NET System.Drawing.Graphics. Для вывода текстовой и графической информации в окно приложения необходимо получить контекст устройства. Контекст устройства позволяет, используя соответствующие драйверы, выводить информацию в рабочую область окна.

Контекст устройства в среде.NET инкапсулирован («завернут») в базовом классе System.Drawing.Graphics. Для создания объекта класса Graphics необходимо использовать метод CreateGraphics(), возвращающий ссылку на объект класса Graphics:

Graphics dc = CreateGraphics();

Полученный объект dc содержит контекст устройства, позволяющий осуществлять вывод информации в окно приложения.

Класс Graphics содержит множество методов, позволяющих рисовать различные графические фигуры. Рассмотрим некоторые из них.

Рисование контуров прямоугольников осуществляется с помощью методов:

public void DrawRectangle(Pen pen, Rectangle rect);

public void DrawRectangle(Pen pen, int x, int y, int width, int height);

public void DrawRectangle(Pen pen, float x, float y, float width, float height);

Рисование контуров эллипсов осуществляется с помощью методов:

public void DrawEllipse (Pen pen, Rectangle rect);

public void DrawEllipse (Pen pen, int x, int y, int width, int height);

public void DrawEllipse (Pen pen, float x, float y, float width, float height);

Рисование закрашенных эллипсов и прямоугольников осуществляется с помощью методов:

public void FillEllipse(Brush brush, Rectangle rect);

public void FillEllipse(Brush brush, int x, int y, int width, int height);

public void FillEllipse(Brush brush, float x, float y, float width, float height);

public void FillRectangle(Brush brush, Rectangle rect);

public void FillRectangle(Brush brush, int x, int y, int width, int height);

public void FillRectangle(Brush brush, float x, float y, float width, float height);

Параметры методов означают следующее:

pen − перо;

brush − кисть;

rect − прямоугольник;

х − координата х левого верхнего угла прямоугольника;

y − координата у левого верхнего угла прямоугольника;

width − ширина прямоугольника;

height −высота прямоугольника;

Рисование линий осуществляется с помощью методов:

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

public void DrawLine(Pen pen, PointF pt1, PointF pt2);

public void DrawLine(Pen pen, int x1, int y1, int x2, int y2);

public void DrawLine(Pen pen, float x1, float y1, float x2, float y2);

Параметры методов означают следующее:

pen − перо;

pt1 − начальная точка рисования;

pt2 − конечная точка рисования;

х1 и у1 − координаты начальной точки рисования;

х2 и у2 − координаты конечной точки рисования;

Примеры использования функций:

dc.DrawRectangle(Pens.OrangeRed,5,10,25,45);

dc.DrawEllipse(Pens.Magenta,100,125,20,15);

dc.FillEllipse(Brushes.BlueViolet,45,50,20,15);

dc.DrawLine(Pens.Green,20,40,60,70);


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



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