- •Министерство образования и науки Российской Федерации
- •Лабораторная работа №1 Структура консольного приложения. Консольный ввод - вывод
- •Лабораторная работа №2 Классы, член данные и член функции класса
- •Свойства
- •Индексаторы
- •Лабораторная работа № 3 Конструкторы, поля только для чтения, вызов конструкторов
- •Конструктор по умолчанию
- •Конструктор с аргументами
- •Поля только для чтения
- •Вызов конструкторов из других конструкторов.
- •Лабораторная работа №4 Делегаты и события
- •События
- •Лабораторная работа № 5 Windows − приложение
- •Лабораторная работа № 6 Простейшие графические возможности
- •Структура Size
- •Структура Point
- •Структура Rectangle
- •Представление цвета
- •Кисти и перья
- •Рисование линий и фигур
- •Рисование текста
- •Перерисовка окна приложения
- •Лабораторная работа №7 Создание меню
- •Лабораторная работа №8 Потоки Создание потока
- •Остановка и возобновление работы потоков
- •Синхронизация работы потоков
Лабораторная работа № 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) смещают координаты левой верхней точки прямоугольника по обеим осям на величину, задаваемую параметрами методов.