Структура 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) не находятся внутри искомого прямоугольника.