Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratornyy_praktikum_po_obektno-orientirovan.doc
Скачиваний:
89
Добавлен:
12.03.2015
Размер:
454.14 Кб
Скачать

Лабораторная работа № 6 Простейшие графические возможности

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

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

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

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

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

Структура Size

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

Size sz = new Size();

свойства Width и Height устанавливаются в ноль.

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

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

Структура 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 sz = new Size(27,45);

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

Открытый метод структуры:

public void Offset( int dx, int dy);

изменяет текущие координаты точки по формулам:

X=X+dx и Y=Y+dy;

Структура Rectangle

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

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

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) смещают координаты левой верхней точки прямоугольника по обеим осям на величину, задаваемую параметрами методов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]