Структура Rectangle

Структура Point

Структура Size

Простейшие графические объекты

В пространстве имен System.Drawing − определены основные структуры для представления:

· точки (координат) − Point и PointF

· размера − Size и SizeF

· прямоугольных областей − Rectangle и RectangleF.

 

Буква F в конце названия структуры означает, что, в отличие от обычных структур (без F), поля структуры имеют не целочисленные значения, а значения вещественного типа (float).

 

Структура Size предназначена для хранения ширины и высоты объекта и имеет, для этого, соответствующие открытые свойства Width и Height, доступные как для записи, так и для чтения. Для создания объекта Size с нулевыми значениями Width и Height с помощью конструктора по умолчанию, используется следующую запись:

 

Size sz = new Size();

 

Изменить значения свойств в последствии можно, например, следующим образом:

 

sz.Width = 40;

sz.Height = 60;

Структура содержит два конструктора с аргументами:

public Size(int, int);

public Size(Point);

Конструкторы с аргументами позволяют, в момент создания, инициализировать разные экземпляры структуры по-разному:

Size sz1= new Size(10,20); // sz1.Width = 10, sz1.Height = 20;

Size sz2 = new Size(15,50); // sz2.Width = 15, sz2.Height = 50;

 

 

Структура Point содержит открытые свойства X и Y целого типа, доступные, как для записи, так и для чтения.

Для создания точки “pt” можно использовать конструктор по умолчанию:

 

Point pt = new Point();

 

Конструктор по умолчанию при создании точки обнуляет значения свойств X и Y.

В дальнейшем координаты точки можно изменить, например, следующим образом:

 

pt.X =25;

pt.Y=75;

 

Инициализировать новую точку класса Point, можно используя, конструкторы с аргументами:

 

public Point(Size);

public Point(int, int);

 

Например:

 

Point pt1 = new Point(10,20); // pt1.X =10, pt1.Y=20

 

Size szm = new Size(27,45);

Point pt2 = new Point(szm); // pt2.X=27, pt2.Y=45

 

Метод класса:

 

public void Offset(int dx, int dy);

 

изменяет текущие координаты точки по формулам: X=X+dx и Y=Y+dy;

 

Структура предназначена для определения координат и размера прямоугольника. Для хранения и изменения координат используются следующие свойства, доступные для записи и чтения:

 

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

 

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

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

 

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

 

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

Width − определяет ширину прямоугольника:

 

Свойства только для чтения:

 

Left и Top − определяют соответственно X и Y координаты левого верхнего угла прямоугольника;

Right и Bottom − определяют соответственно X и Y координаты правого нижнего угла прямоугольника;

 

В структуре определены два конструктора с аргументами:

 

public Rectangle(

int x, // x-координата левого верхнего угла прямоугольника

int y, // y-координата левого верхнего угла прямоугольника

int width, // ширина прямоугольника

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

);

 

public Rectangle(

Point location, // координата левого верхнего угла прямоугольника

Size size // размер прямоугольника

);

 

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

 

Point pt = new Point(10,15);

Size sz = new Size (50,70);

Rectangle rct = new Rectangle(pt,sz);

Rectangle rect = new Rectangle(20,20,50,30);

 

Структура Rectangle содержит ряд доступных методов. Рассмотрим некоторые из них.

 

Метод:

public void Intersect(Rectangle);

 

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

Например:

Rectangle rect,rct;

rect = new Rectangle(20,25,50,55);

rct = new Rectangle(10,10,30,40);

rect.Intersect(rct);

выполнение, приведенного фрагмента кода установит значения свойства структуры прямоугольника rect следующим образом:

 

X=20, Y=25, Width=20, Height=25.

 

Метод:

 

public static Rectangle Union( Rectangle a, Rectangle b);

 

Возвращает структуру, описывающий минимальный по размерам прямоугольник, включающий в себя прямоугольники a и b.

 

Методы:

 

public void Offset(Point pos);

public void Offset( int x, int y);

 

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

Перегруженные методы:

 

public bool Contains(int x, int y);

public bool Contains(Point pt);

public bool Contains( Rectangle rect);

 

Возвращают значение ложь, если точка (x, y, pt) или прямоугольник (rect) не находятся внутри искомого прямоугольника.